集合接口概念

集合可以看作是一种容器,用来存储对象信息。所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下。

数组与集合的区别如下:
  1)数组长度不可变化而且无法保存具有映射关系的数据;集合类用于保存数量不确定的数据,以及保存具有映射关系的数据。

  2)数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象。

  Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List、Set、Queue(Java5新增的队列),因此Java集合大致也可分成List、Set、Queue、Map四种接口体系,(注意:Map不是Collection的子接口)。

  其中List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合;Map代表的是存储key-value对的集合,可根据元素的key来访问value。
List
(1)ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素
(2)LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素
(3)Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素
set
(1)HashSet:底层数据结构采用哈希表实现,元素无序且唯一,线程不安全,效率高,可以存储null元素
(2)LinkedHashSet:底层数据结构采用链表和哈希表共同实现,链表保证了元素的顺序与存储顺序一致,哈希表保证了元素的唯一性。线程不安全,效率高。
(3)TreeSet:底层数据结构采用二叉树来实现,元素唯一且已经排好序;
[

](https://blog.csdn.net/feiyanaffection/article/details/81394745)
总结:Set具有与Collection完全一样的接口,因此没有任何额外的功能
map

  下图中淡绿色背景覆盖的是集合体系中常用的实现类,分别是ArrayList、LinkedList、ArrayQueue、HashSet、TreeSet、HashMap、TreeMap等实现类。
1362965-20190118094735724-2129767713.png
1362965-20190118095106326-273814633.png
20180803204923763.png

Iterator迭代器

迭代器用法——菜鸟联盟

ArrayList

ArrayList用法——菜鸟联盟

LinkedList

LinkedList用法——菜鸟联盟

Queue

Queue队列接口实现类LinkedList用法——菜鸟联盟

Hashset

Hashset用法——菜鸟联盟

HashMap

HashMap用法——菜鸟联盟