Java集合框架
我们为什么要学习集合框架呢?
我们前面学习了Java的基本数据类型,引用类型都是可以用来存储我们的数据的,但是仅仅只能存储单
个,我们可以通过数组的形式来存储多个数据,但是数据有个特点是长度是不能改变的,那也就意味着
数组在处理需要对数组中的数据做添加和删除操作的时候就会显得非常麻烦。所以Java给我们提供了
集合类来解决这个问题.
概述
JavaAPI所提供的一系列类的实例,可以用来动态的存放多个对象。Java集合框架提供了一套性能优
良,使用方便的接口和类,位于java.util包中。
集合的特点:长度不固定,只能存储引用类型的对象。
集合和数组的区别
| 长度 | 内容 | 数据类型 |
---|
集合 | 长度是可以根据实际的需求变动的 | 可以存储不同类型的数据 | 只能存储引用数据类型 | 数组 | 长度固定不可改变 | 数组中存储的是同一种类型的数据 | 可以存储基本数据类型和引用数据类型 |
集合的框架图
Collection接口
结合集合的框架结构,我们可以推演下集合的设计,因为集合有多 增删改查 的方法,而且集合是一
套框架,既然是框架那么每一种集合在处理 增删改查 的时候的方式会不一样。
既然每一个集合的特点不一样,那么就取决于所有子类的实现方法不一样,但是我们知道,在集合中所
有的集合应该具有集合共有特点:
1. 长度可变
2. 能够存储任意的引用类型
3. 具备很多对象的 增删改查 的方法
4. 集合也能够存储基本数据类的包装类
只是说每一个集合类的实现方式不一样罢了。实现方式其实就取决于底层的数据结构
Collection的特点
- 有序:部分集合实现是有序的,部分集合实现是无序的。这里的有序指的是存储的顺序
- 可排序:部分集合实现是可排序的,部分集合实现是不可排序的
- 可重复:部分集合是可重复的,部分集合是不可重复的
Collection接口的常用方法
方法名 | 说明 |
---|
add(Object o) | 向集合中添加一个元素。 | addAll(Collection<? extends E> c) | 将指定集合中的所有元素添加到此集合 | clear() | 清空集合元素 | remove(Object o) | 删除指定元素 | removeAll(Collection<?> c) | 删除指定集合中包含的所有此集合的元素 | toArray() | 返回一个包含此集合中所有元素的数组。 | iterator() | 返回此集合中的元素的迭代器。 | isEmpty() | 如果此集合不包含元素,则返回 true 。 | contains(Object o) | 如果此集合包含指定的元素,则返回 true 。 | containsAll(Collection<?> c) | 如果此集合包含指定 集合中的所有元素,则返回true。 | size() | 返回此集合中的元素数。 | retainAll(Collection<?> c) | 仅保留此集合中包含在指定集合中的元素(可选操作)。 retainAll 求交集 返回的结果是观察原集合是否发生了改变,true改变 false 没有改变 |
|