线性表,链表,哈希表是常用的数据结构,在进行 Java 开发时,JDK 已经为我们提供
了一系列相应的类来实现基本的数据结构。这些类均在 java.util 包中。本文试图通过简单
的描述,向读者阐述各个类的作用以及如何正确使用这些类。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection 接口
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection
的元素(Elements)。一些 Collection 允许相同的元素而另一些不行。一些能排序而另
一些不行。Java SDK 不提供直接继承自 Collection 的类,Java SDK 提供的类都是继承
自 Collection 的“子接口”如 List 和 Set。
所有实现 Collection 接口的类都必须提供两个标准的构造函数:无参数的构造函数用
于创建一个空的 Collection,有一个 Collection 参数的构造函数用于创建一个新的
Collection,这个新的 Collection 与传入的 Collection 有相同的元素。后一个构造函数
允许用户复制一个 Collection。
如何遍历 Collection 中的每一个元素?不论 Collection 的实际类型如何,它都支持
一个 iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问 Collection
中每一个元素。典型的用法如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
由 Collection 接口派生的两个接口是 List 和 Set。
主要方法:
boolean add(Object o)添加对象到集合
boolean remove(Object o)删除指定的对象
int size()返回当前集合中元素的数量
boolean contains(Object o)查找集合中是否有指定的对象
boolean isEmpty()判断集合是否为空
Iterator iterator()返回一个迭代器
boolean containsAll(Collection c)查找集合中是否有集合 c 中的元素
boolean addAll(Collection c)将集合 c 中所有的元素添加给该集合
void clear()删除集合中所有元素
void removeAll(Collection c)从集合中删除 c 集合中也有的元素