
Java高级
天津大学–神经网络方向–在读研究生
这个作者很懒,什么都没留下…
展开
-
JDK 8中HashMap底层实现原理相较于JDK7中的变化
new hashMap():new的时候底层没有创建一个长度为16的数组 JDK 8中底层的数组是Node[]类型的数组而非Entry[]类型 首次使用put()方法时底层创建长度为16的Node[]数组 JDK7底层结构只有数组+链表,JDK8中的底层结构为数组+链表+红黑树;当数组中的某一个索引位置上的元素以链表形式存在的数据个数大于8且当前数组长度超过64时,此索引位置上的所有数据改为使用...原创 2019-11-28 18:50:52 · 187 阅读 · 0 评论 -
HashMap的底层实现原理(JDK7版本)
new HashMap(); 实例化后会在底层创建一个长度为16的Entry[] table数组。 …可能已经执行的put… map put(key1, value1); 首先调用key1所在类的hashCode()方法,计算key1的哈希值,此哈希值经过某种算法计算以后,得到在Entry数组中存放的位置; 如果此位置上的数据为空,即该位置上没有数据,此时key1-value1添加成功; 如果此位...原创 2019-11-27 23:06:02 · 137 阅读 · 0 评论 -
Map中key-value的理解?
Map中的key是无序的,不可重复的,可以使用Set存储所有的key;要求key所在的类要重写equals()方法和hashCode()方法。 Map中的value是无序的,但可以重复,使用Collections存储所有的value;value所在的类要重写equals()方法。 键值对:一个key-value构成了一个Entry对象;Map中的Entry是无序的,不可重复的(key不可重复),...原创 2019-11-27 22:16:16 · 1232 阅读 · 0 评论 -
关于HashSet的一道面试题
定义了两个类,一个类是Person类,包含的属性有String name和int age,并重写了hashCode(),equals()和toString()方法;另一个类是HashSetTest类,代码如下: public class HashSetTest{ public static void main(String[] args){ HashSet set = new Has...原创 2019-11-27 21:06:11 · 272 阅读 · 0 评论