Collection 接口是 List 接口和 Set 接口的父接口,通常情况下不被直接使用。Collection 接口定义了一些通用的方法,通过这些方法可以实现对集合的基本操作。因为 List 接口和 Set 接口继承自 Collection 接口,所以也可以调用这些方法。
Collection 接口常用的方法
方法名称 | 说明 |
---|---|
boolean add(E e) | 向集合中添加一个元素,E 是元素的数据类型 |
boolean addAll(Collection c) | 向集合中添加集合 c 中的所有元素 |
void clear() | 删除集合中的所有元素 |
boolean contains(Object o) | 判断集合中是否存在指定元素 |
boolean containsAll(Collection c) | 判断集合中是否包含集合 c 中的所有元素 |
boolean isEmpty() | 判断集合是否为空 |
Iterator<E>iterator() | 返回一个 Iterator 对象,用于遍历集合中的元素 |
boolean remove(Object o) | 从集合中删除一个指定元素 |
boolean removeAll(Collection c) | 从集合中删除所有在集合 c 中出现的元素 |
boolean retainAll(Collection c) | 仅仅保留集合中所有在集合 c 中出现的元素 |
int size() | 返回集合中元素的个数 |
Object[] toArray() | 返回包含此集合中所有元素的数组 |
Set集合:常用java数组中存储任何不重复元素的,无序的集合。
Map集合:是一种键值对(key-value)集合,map集合中的每一个元素都包含一个键对象和一个值对象,其中键对象不允许重复,值对象可以重复,并且值对象还可以是一个map类型,就像数组中的元素还可以是一个数组。
map接口主要实现hashMap和TreeMap 两个实现类。其中HashMap按照哈希算法来存取键对象。TreeMap类可以对键对象进行排序。
List集合:List 接口实现了 Collection 接口,它主要有两个实现类:ArrayList 类和 LinkedList 类。在 List 集合中允许出现重复元素。与 Set 集合不同的是,在 List 集合中的元素是有序的,可以根据索引位置来检索 List 集合中的元素,第一个添加到 List 集合中的元素的索引为 0,第二个为 1,依此类推。
ArrayList 类提供了快速的基于索引的成员访问方式,对尾部成员的增加和删除支持较好。使用 ArrayList 创建的集合,允许对集合中的元素进行快速的随机访问,不过,向 ArrayList 中插入与删除元素的速度相对较慢。
LinkedList 类采用链表结构保存对象,这种结构的优点是便于向集合中插入或者删除元素。需要频繁向集合中插入和删除元素时,使用 LinkedList 类比 ArrayList 类效果高,但是 LinkedList 类随机访问元素的速度则相对较慢。这里的随机访问是指检索集合中特定索引位置的元素。