ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
HashSet
不能保证元素的排列顺序,顺序有可能发生变化
集合元素可以是null,但只能放入一个null
TreeSet支持两种排序方式,自然排序 和定制排序,其中自然排序为默认的排序方式。向TreeSet中加入的应该是同一个类的对象。
HashTable
- 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,
HashMap
- 1.8之前,底层数组+链表实现,可以存储null键和null值,线程不安全
- 1.8及之后 ,底层数组+链表+红黑数实现
ConcurrentHashMap
- 1.8之前,底层采用分段的数组+链表实现,线程安全
- 1.8及之后 底层数组+链表+红黑数实现
Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类的。