list

有索引

arraylist

通过数组实现

查找效率高,支持随机访问,添加删除效率低,需要移动元素,超过数组容量需要复制所有元素到新的更大的数组

linkedlist

通过链表实现

查找效率低,不支持随机访问,添加删除效率高,不需要移动元素,可以一直添加

 

map

存储键和值,将键映射到值,键不能重复,一个键最多对应一个值

hashmap

通过哈希表实现

哈希表通过数组和链表实现

输入输出顺序不一致

linkedhashmap

通过哈希表和链表实现

输入输出顺序一致

treemap

通过红黑树实现

hashtable

和hashmap一样,多了线程安全,操作时候会将数据结构锁住,其他线程无法操作

concurrent hashmap

和hashtable一样,但是只锁一段数据,不影响其他段

 

set

和map一样,只是把value设置成了null,只使用key