Java集合,不再使用过多的文字描述,为了更加清晰的展示集合之间的关系,本文使用一张导图阐述整个集合,之后会针对几个类似的类,进行对比说明:
1、集合接口有哪些,主要包含哪些实现类
Collection:ArrayList,LinkedList,Vector,HashSet,TreeSet,LinkedHashSet,Queue
Map:HashMap,WeekHashMap,TreeMap,ConcurrentHashMap,HashTable
2、ArrayList和Vector的区别
1)Vector使用了Synchronized关键字,是线程安全的,ArrayList是线程不安全的。
2)Vector扩容时2n,ArrayList是1.5n+1
3、ArrayList和LinkedList的区别
1)ArrayList底层为数组,LinkedList为双向链表
2)ArrayList在查找效率更高,而LinkedList在增删效率高
4、ConcurrentHashMap与HashTable的区别
ConcurrentHashMap本身的数据结构与hashMap大致一致,但是引入了分段锁,将锁住某一个segment,而HashTable锁住的是整个结构
5、HashMap与HashTable的区别
1)HashMap是线程不安全的,HashTable是线程安全的
2)HashMap的key和value可为null,HashTable都不可为null
6、关于HashMap的问题,请参考上一篇博客