1、集合框架概览
集合解决的问题
在编程中,需要管理很多对象集,因为任何数据必不可少的就是该数据是如何存储的。比如某班全部同学,某个公司所有人员资料等。
要管理这些对象的存储,java必须提供某种数据结构支持。
由于时间、空间、安全的考虑,有各种不同的实现。比如ArrayList、Vector、HashMap、LinkedList、TreeMap、HashSet等多种实现。
为了屏蔽实现差异,java提供了一个Collection(集合)接口,规定必须实现一些公用的方法。
比如 add、remove、size等等这样,不管底层如何实现,我都知道他们至少拥有上面方法。
一句话java集合就是提供一组通用接口的,以一定的方式组织、存储数据、管理数据的数据结构实现。
对于集合,我认为关注的点主要有四点:
- 是否允许空
- 是否允许重复数据
- 是否有序,有序的意思是读取数据的顺序和存放数据的顺序是否一致
- 是否线程安全
根据数据结构这一课程定义的ADT 抽象数据类型结构
,其实Java中集合的数据结构类型也可以做为类比学习。1
2
3
4
5ADT 集合抽象数据类型名 {
数据对象: <数据对象的定义>
数据关系: <数据关系的定义>
基本操作: <基本操作的定义>
}
结构
集合框架总览
Collection接口
List接口
Set接口
Map接口
集合遍历
迭代器Iterator
多线程安全
concurrent包下的并发集合工具、Collections下的包装方法。
操作集合的工具
Arrays、Collections
问题
快速迭代失败