2.13 ⽐较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
HashSet是Set接⼝的主要实现类,HashSet的底层是HashMap,线程不安全的,可以存储null值... » 阅读全文
HashSet是Set接⼝的主要实现类,HashSet的底层是HashMap,线程不安全的,可以存储null值... » 阅读全文
1. JDK1.7 ⾸先将数据分为⼀段⼀段的存储,然后给每⼀段数据配⼀把锁,当⼀个线程占⽤锁访问其中⼀个段数据... » 阅读全文
ConcurrentHashMap和Hashtable的区别主要体现在实现线程安全的⽅式上不同。 底层数据结构... » 阅读全文
主要原因在于并发下的rehash会造成元素之间形成⼀个循环链表。不过,jdk 1.8 后解决了这个问题,但是还... » 阅读全文
为了能让HashMap存取⾼效,尽量较少碰撞,也就是要尽量把数据分配均匀。我们上⾯也讲到了,Hash值的范围是... » 阅读全文
1. JDK1.8 之前 JDK1.8 之前HashMap底层是数组和链表结合在⼀起使⽤也就是链表散列。Has... » 阅读全文
当你把对象加⼊HashSet时,HashSet会先计算对象的hashcode值来判断对象加⼊的位置,同时也会与... » 阅读全文
如果你看过HashSet源码的话就应该知道:HashSet底层就是基于HashMap实现的。HashSet的源... » 阅读全文
线程是否安全:HashMap是⾮线程安全的,HashTable是线程安全的,因为HashTable内部的⽅法基... » 阅读全文
初始容量 ArrayList有多个不同的构造函数,不同的构造函数的初始容量是不同的。快速看一下ArrayLis... » 阅读全文