一、List集合:
- List集合下最常见的有两个:ArrayList 和 LinkedList。
- 区别:(1)ArrayList底层是数组,LinkedList底层是链表。数组遍历速度快,LinkedList增删元素快。 (2)ArrayList遍历速度快,LinkedList增删速度快。
- 特点:有序(存储顺序和取出顺序一致),可重复。
- 三个子集:ArrayList(底层数据结构是数组,线程不安全)、LinkedList(底层是链表,线程不安全)、Vector(底层是数据,线程安全)
- 如果涉及多线程问题,可以用: CopyOnWriteArrayList。
二、Set集合:
- Set集合最常见的三个:HashSet、TreeSet、LinkedHashSet。
- List和Set区别:如果我们需要保证集合的元素是唯一的,就应该想到用Set集合。
- 区别:(1)一般开发中最多用的就是HashSet,TreeSet可以排序的,LinkedHashSet通常用不上。
- 特点:元素不可重复。
- 三个子集:HashSet(底层是哈希表,是一个元素为链表的数组)、TreeSet(底层是红黑树,自平衡的二叉树)、LinkedHashSet(底层是哈希表和链表组成)
- 如果涉及多线程问题,可以用:CopyOnWriteHashSet。
三、Map集合:
- Map集合最常见的三个:HashMap、LinkedHashMap、TreeMap。
- 如果涉及多线程问题,可以用:ConcurrentHashMap。
四、集合(Collection)介绍:
(1)数组和集合的区别:
- 长度的区别: 数组长度固定,集合长度可变。
- 内容不同: 数组存储同一种类型元素,集合可存储不同类型元素。
- 元素数据类型: 数组可以存储基本数据类型,也可以存储引用类型。集合只能存储引用类型(你存储的是简单的int,它会自动装箱成Integer)。
(2)Collection 结构图系:
(3)Collection的一些基本方法: