一、集合的分类
- Java集合可分为 Collection 和 Map 两种体系
Collection 接口 单列数据,定义了存取一组对象的方法的集合
List 元素 有序、可重复的集合
Set 元素无序、不可重复的集合
Map 接口: 双列数据,保存具有映射关系“ key value 对”的集合,元素无序、key 不可重复 - Collection 接口继承树
- Map接口继承树
二、List集合
- 数组存储数据有局限性,大小确定后就不能改变、只能存储一种类型的数据、添加、删除操作慢需要移动数据。所以用List集合来代替数组
- List集合中的数据是有序的,元素是可重复的。可以根据索引来查找元素
List接口实现类之一:ArrayList
- ArrayList本质上是一个可变长的"数组"
- ArrayList在JDK版本的变化
JDK 1.7 版本前属于饿汉式:在new ArrayList();直接创建一个初始容量为10的数组
JDK 1.8 版本后属于懒汉式:在new ArrayList();开始创建一个初始容量为0的数组,当添加第一个数据时再创建一个容量为10的数组; - Arrays.asList(数组) 可直接将数组转换为List集合
List接口实现类之二:LikedList
- LinkedList 底层是双向链表,对于频繁的插入、删除LinkedList效率较高,因为改变指针的指向就可以了,而ArrayList需要移动元素。