Java | 集合

ArrayList 、 vector、LinkList的异同
1.它们都是实现List接口,都是排列有序,元素可以重复的
2.ArrayList 和 vector底层是数组,LinkList是双向循环链表
3.ArrayList 和 LinkList是线程不安全的,vector是线程安全的
4.扩容增上,ArrayList初始容量是10,增长量是原本的0.5倍;vector初始容量是10,增长量是原来的1倍
5.ArrayList 和vector查询速度快,增伤速度慢,而LinkList相反
HashTable和HasMap的区别
1.HashTable是线程安全,HashMap是线程不安全
2.HashTable不允许key、value不能为null,而HasMap相反
3.哈希值的使用不同,HashTable直接使用对象的hashCode,而HasMap使用重新计算的hash值
4.HashTable种hash数组默认大小是11,增加的方式old*2+1;初始容量是16,达到阈值扩容,在jdk6 7 8有所不同,扩容每次2倍
5.遍历方式上, Hashtable、HashMap都使用了 Iterator,Hashtable还使用了Enumeration的方式 。
6.HashTable基于Dictionary类,而HashMap基于AbstractMap类
HashMap和ConCurrentHashMap区别
1.HashMap是非线程安全的,而ConCurrentHashMap是线程安全的
2.ConcurrentHashMap让锁的粒度更精细些,并发性能更好
原文地址:https://www.cnblogs.com/jj81/p/11188075.html