Collection
- 最基本的集合接口,包含对于集合的基本的8个操作:
- 向集合中添加元素
- 删除集合中的元素
- 修改集合中的元素
- 查找集合中的元素
- 拷贝集合中的元素
- 判断集合间的等价性
- 获取集合的规模(大小)
- 获取集合的hashCode
添加操作
函数头 | 函数描述 |
---|---|
public boolean add(Object element) | 向集合中添加单个元素,如果添加成功返回true,否则返回false,没有异常抛出 |
public boolean addAll (Collection c) | 将另一个集合整个添加到当前集合,如果当前集合有修改,那么返回true,否则返回false |
注意:当前实例是更具体的类型,那么可能不支持某些函数,那么会抛出异常UnsupportedOperationException,下面的几种操作有同样的异常机制,不做赘述。
删除操作
函数头 | 函数详解 |
---|---|
public void clear() | 删除集合中的所有的元素 |
public boolean remove (Object element) | 删除集合中的单个元素,如果集合有修改,那么返回true,否则返回false |
public boolean removeAll (Collection c) | 我们假设当前集合为
S
,参数集合为 |
public boolean retainAll (Collection c) | 我们假设当前集合为 |
获取元素
public Iterator iterator()
获取一个迭代器,能够遍历集合中的全部元素。
查找元素存在性
函数头 | 函数详解 |
---|---|
public boolean contains(Object element) | 如果要查找的元素存在,那么返回true,否则返回false |
public boolean containsAll (Collection c) | 我们假设当前集合为 |
获取集合的规模
函数头 | 函数详解 |
---|---|
public int size() | 获取集合的元素的个数 |
public boolean isEmpty() | 判断集合是否为空 |
拷贝集合
Collecion这个接口是不提供串行和克隆操作的,
函数头 | 函数比较 |
---|---|
public Object[] toArray() | 返回的元素的类型就是基本的Object类型 |
public Object[] toArray(Object[] a) | 参数的数组的类型决定了返回的数组的类型,如果传入的数组的空间足够,那么会把集合拷贝到数组中,富余的部分用null填充;如果传入的数组的规模不够,那么会得到一个新的同样类型的数组,作为返回值返回。 |
注意:如果传入的数组的类型不能够由集合中的元素转换得到,那么会抛出异常ArrayStoreException
检查集合等价性
首先要判断两个集合的的更具体的类型是否相同,如果相同,再根据那个集合的等价性的具体定义来判断:
public boolean equals(Object o)
Iterator接口
函数名称 | 函数解释 |
---|---|
hasNext() | 当前集合是否有下一个元素 |
next() | 获取下一个元素 |
remove() | 删除迭代器指向的最后一个元素 |
迭代器和Enumeration很像,但是它能够修改集合,但是为了操作的安全性我们采取的是只能删去集合中的最后一个元素。
一个例子:
Collection c = ...
Iterator i = c.iterator();
while (i.hasNext()) {
process(i.next());
}
如果hasNext()返回true之后还继续用Next函数的话,那么会怕抛出NoSuchElementException异常
为了更好的利用和实现多态,理解好基本collection接口才能更好的利用Collections Framework