zoukankan      html  css  js  c++  java
  • 023 说一下HashMap的实现原理?

    说一下HashMap的实现原理?(已更新)

    答:

    • HashSet 是以Hash表结构存储

    • 可以存null键、null值

    • HashMap 储存的是Jdk中提供的类型的键,可以保证唯一性;HashMap 储存的是自定义的键,无法保证唯一性(哈希冲突),见以下:

    • 一般子类需要用到HashCode方法,并且进行重写。

    例:String重写HashCode方法,只要是数据内容一样,返回的hashCode值就是一样("abc");如果数据不一样,但是hashCode值一样,则表示 hash 冲突("通话")。


     

    Hash表结构:

    存储

    Jdk1.8前 数组+链表

    Jdk1.8前 数组+链表/红黑树

    释义:

    数组:元素分类(当HashCode值相同的时候,分在数组的同一类)

    链表:对数组一类中的数据进行连接,初始值为16

    红黑树:当数组中挂载的数据在8个或以上时,后面的链表转成红黑树(查询效率高)

  • 相关阅读:
    mysql case when用法
    php+mysql实现事务回滚
    go安装windows源码
    【C++】子类访问父类typedef的问题
    【C++】STL算法之remove_if
    MySQL常用函数总结
    Apriori算法+python实现
    数据库索引理论
    Linux基本命令
    JAVA 多线程
  • 原文地址:https://www.cnblogs.com/ynzj123/p/12689289.html
Copyright © 2011-2022 走看看