一、集合简介
1.1 集合存在的意义:存储并操作对象。

1.2 数组和集合的区别:

1. 数组的长度固定,而集合的长度可变;

2. 数组既可以存储引用数据类型又可以存储基本数据类型,集合只能存储引用数据类型。

二、Collection的体系结构

图2-1 collection体系结构图
List集合:

  1. 特点:存储顺序和取出顺序一致,集合内的元素可以重复。

  2. 常用实现类:

    1.ArrayList:底层由数组实现,默认的初始容量为10,每次扩容为原来的1.5倍,插入删除较慢,查找较快,线程不安全。

    2.LinkedList:底层由双向链表实现,可作为栈,队列来使用,插入删除极快,查找比较慢,线程不安全。

    3.Vector:底层由数组实现,默认的初始容量为10,负载因子为1,每次扩容为原来的2倍,插入删除较慢,查找较快,但都慢于ArrayList,线程安全。

Set集合:

1.特点:集合内的元素不可重复。

2.常用实现类

1.HashSet:底层实现是一个HashMap(保存数据),默认初始容量为16,负载因子为0.75(当集合内元素个数 超过容量长度的0.75倍时,进行扩容),每次扩容为原来的2倍,不可以保证集合内的元素有序。

2.TreeSet:底层数据结构为红黑树,可以保证集合内的元素有序。

3.LinkedHashSet:底层数据结构为哈希表加链表,可以保证集合内的元素与插入顺序的一致性。

Queue:

1.特点:插入集合内的元素遵循FIFO原则。

2.常用实现类:

1.PriorityBlockingQueue :一个由优先级堆支持的无界优先级队列,实质上维护了一个有序列表。插入的元素根据它们的天然排序(通过其 java.util.Comparable 实现)或者根据传递给构造函数的 java.util.Comparator 实现来定位。