1、集合框架概览

集合解决的问题

在编程中,需要管理很多对象集,因为任何数据必不可少的就是该数据是如何存储的。比如某班全部同学,某个公司所有人员资料等。

要管理这些对象的存储,java必须提供某种数据结构支持。
由于时间、空间、安全的考虑,有各种不同的实现。比如ArrayList、Vector、HashMap、LinkedList、TreeMap、HashSet等多种实现。

为了屏蔽实现差异,java提供了一个Collection(集合)接口,规定必须实现一些公用的方法。

比如 add、remove、size等等这样,不管底层如何实现,我都知道他们至少拥有上面方法。

一句话java集合就是提供一组通用接口的,以一定的方式组织、存储数据、管理数据的数据结构实现。

对于集合,我认为关注的点主要有四点:

  1. 是否允许空
  2. 是否允许重复数据
  3. 是否有序,有序的意思是读取数据的顺序和存放数据的顺序是否一致
  4. 是否线程安全

根据数据结构这一课程定义的ADT 抽象数据类型结构,其实Java中集合的数据结构类型也可以做为类比学习。

1
2
3
4
5
ADT 集合抽象数据类型名 {
数据对象: <数据对象的定义>
数据关系: <数据关系的定义>
基本操作: <基本操作的定义>
}

结构

集合框架总览

集合框架总览

Collection接口

Collection接口

List接口

List接口

Set接口

Set接口

Map接口

Map接口

集合遍历

迭代器Iterator

多线程安全

concurrent包下的并发集合工具、Collections下的包装方法。

操作集合的工具

Arrays、Collections

问题

快速迭代失败

参考文档

源码专题:http://blog.csdn.net/column/details/collection.html