-
List和set都是继承自Collection接口,map不是
-
List有序放入元素可重复;Set无序放入,元素重复会覆盖
-
List支持索引(下标)遍历,也可以用迭代器;Set因为无序只能用迭代,无法用下标取得想要的值!
-
List查找元素效率高,增删元素效率低,因为会引起元素位置改变;Set反之
-
map适合存储键值对数据
ArrayList与LinkedList的区别和适用场景
ArrayList底层是数组,LinkedList底层是链表。所以arrayList查询块,LinkedList增删块。
适用场景
- ArrayList:查询多,增删少
- LinkedList:增删多,查询少
一般情况下LinkedList更占空间
ArrayList与Vector的区别和适用场景
Vector多线程安全,ArrayList不是。空间不足时,扩容方式不同
适用场景
- 不考虑线程安全时,一般使用ArrayList
HashSet与TreeSet的区别和适用场景
TreeSet是二叉树实现,数据是自动排序好的,不允许放入null。HashSet是哈希表实现的,数据无序可以放入null。
Map
map中的集合,元素是成对存在的。每个元素由键与值两部分组成。