Java怎么实现哈希表的基本功能
导读:本文共3289字符,通常情况下阅读需要11分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一、哈希表头插法放入元素/***user:ypc;*date:2021-05-20;*time:11:05;*/publicclassHashBuck{classNode{publicintkey;intvalue;Nodenext;Node(intkey,intvalue){this.key=key;this.value=value... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。扩容
注意:
要用自定义类作为 HashMap 的 key 或者 HashSet 的值,必须覆写 hashCode 和 equals 方 法,而且要做到 equals 相等的对象,hashCode 一定是一致的。
比如Student s1 和 s2 的id一样,得到的却是不同的value,所以要覆写hashCode 和 equals 方 法,如果不覆写,则使用的是Object类的hashCode 和 equals 方 法,比较的是地址。
hashmap用数组+链表。数组是固定长度,链表太长就需要扩充数组长度进行rehash减少链表长度。如果两个线程同时触发扩容,在移动节点时会导致一个链表中的2个节点相互引用,从而生成环链表
本文:
Java怎么实现哈希表的基本功能的详细内容,希望对您有所帮助,信息来源于网络。