一、集合的分类

  1. Java集合可分为 Collection 和 Map 两种体系
    Collection 接口 单列数据,定义了存取一组对象的方法的集合
    List 元素 有序、可重复的集合
    Set 元素无序、不可重复的集合
    Map 接口: 双列数据,保存具有映射关系“ key value 对”的集合,元素无序、key 不可重复
  2. Collection 接口继承树
    图片说明
  3. Map接口继承树
    图片说明

二、List集合

  1. 数组存储数据有局限性,大小确定后就不能改变、只能存储一种类型的数据、添加、删除操作慢需要移动数据。所以用List集合来代替数组
  2. List集合中的数据是有序的,元素是可重复的。可以根据索引来查找元素

List接口实现类之一:ArrayList

  1. ArrayList本质上是一个可变长的"数组"
  2. ArrayList在JDK版本的变化
    JDK 1.7 版本前属于饿汉式:在new ArrayList();直接创建一个初始容量为10的数组
    JDK 1.8 版本后属于懒汉式:在new ArrayList();开始创建一个初始容量为0的数组,当添加第一个数据时再创建一个容量为10的数组;
  3. Arrays.asList(数组) 可直接将数组转换为List集合

List接口实现类之二:LikedList

  1. LinkedList 底层是双向链表,对于频繁的插入、删除LinkedList效率较高,因为改变指针的指向就可以了,而ArrayList需要移动元素。

图片说明