Java Set/List 知识点
Set与List区别
- List 有序、值可重复,内部数据结构 Obejct[ ] 数组
- Set 无序、值不重复,内部数据结构 HashMap key=object value固定new Object()
ArrayList
- 有序存储元素
- 允许元素重复,允许存储
null
值 - 支持动态扩容
- 非线程安全
HashSet、LinkedHashSet、TreeSet的区别(面试常问)
HashSet、LinkedHashSet、TreeSet是实现Set接口的3个实现类,其中:
HashSet只是通用的存储数据的集合,
LinkedHashSet的主要功能用于保证FIFO(先进先出)即有序的集合,
TreeSet的主要功能用于排序(自然排序或者比较器排序)
相同点
1)HashSet、LinkedHashSet、TreeSet都实现了Set接口
2)三者都保证了元素的唯一性,即不允许元素重复
3)三者都不是线程安全的
可以使用Collections.synchronizedSet()方法来保证线程安全
不同点
HashSet不保证元素的顺序
LinkHashSet保证FIFO即按插入顺序排序
TreeSet保证元素的顺序,支持自定义排序规则
网友评论