集合的基础知识
集合的体系结构
- Java中的list和set有什么区别
(1)重复对象
list方法可以允许重复的对象,而set方法不允许重复对象
(2)null元素
list可以插入多个null元素,而set只允许插入一个null元素
(3)容器是否有序
list是一个有序的容器,保持了每个元素的插入顺序。即输出顺序就是输入顺序,而set方法是无序容器,无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序 - ArrayList和LinkedList的区别
(1)ArrayList是基于动态数组的数据结构实现的。所以执行查询速度快O(1),增删速度慢O(n)。
(2)LinkedList是基于链表结构实现,所以执行增删速度快O(1),查询慢O(n)。
(3)查询多的场景使用ArrayList,修改多的场景使用LinkedList。