一、简单的集合框架图

 这里只列举几个常用的集合。学习Java集合要先从其接口入手,了解接口的特性,方便我们把握具体实现类的特点,进而根据其特点选择合适的集合使用

Java集合框架的组成 java中集合框架的层次结构_List


Java集合框架的组成 java中集合框架的层次结构_数据结构_02


二、Collection接口与Map接口

 该接口与Map接口将Java集合分成了两大类。两种集合都支持使用泛型。继承Collection接口的集合以单元素的形式存储对象,而继承Map接口的集合采用“键-值”的形式存储对象。

三、Set接口与List接口
 Set接口与List接口继承了Collection接口,将Collection集合又进一步分成两大类。其各自的特点如下:
List集合:

  • 元素有序,取出顺序与插入顺序有关
  • 元素可重复
  • 支持索引访问

Set集合:

  • 元素无序,取出顺序与插入顺序无关
  • 元素不可重复
  • 不支持索引访问

3.1、List集合常用实现类

  • ArrayList:底层数据结构是数组,线程不安全
  • Vector:底层数据结构是数组,线程安全
  • LinkedList:底层数据结构是双向链表,线程不安全

3.2、 Set集合常用实现类

  • HashSet:底层数据结构是哈希表
  • TreeSet:底层数据结构是一个自平衡二叉树,保证元素的排序方式。

四、Map接口
 Map也称为映射,采用键值对的形式存储元素。其特点如下:

  • 一个key对应一个value
  • key不可重复,value可以重复

Map集合常用实现类有:HashMap、TreeMap。

五、集合与数组的比较
 在Java中,已经存在了数组可以存放数据,那为何还要使用集合呢?
 在平时使用中,我们不止要存放数据,还常常需要对这些数据进行一定的操作。而集合封装了大量的操作这些数据的方法,方便了我们的使用。数组与集合的特点如下:
数组:

  • 既可以存放基本数据类型,也可以存放引用数据类型。但一个数组中的元素类型唯一。
  • 长度确定后不可变
  • 操作元素的方法需要自己实现

集合:

  • 只能存放引用类型。但在不使用泛型时,一个集合可以存放多种类型数据。
  • 长度可变。
  • 提供了“key-value”形式的存储方式
  • 集合内部封装了大量操作元素的方法
  • 不同的集合其底层采用的数据结构不同,可以根据场景灵活的选择。

 总之,集合比数组复杂,但却使用方便。另外,集合在面试中也是一大考点,需要牢牢掌握各种集合的特点及使用方法。关于其各个实现类将在后面分篇介绍。