Java集合框架-Collection接口
程序员文章站
2024-02-06 23:47:10
...
Collection接口
- Collection接口是List、Set和Queue等高度抽象处理的接口,定义了对集合操作的方法。
- 实现Collection接口的集合根据具体的类,可以允许有重复元素(List接口的实现类),也可以没有重复元素(Set接口的实现类)。同样地,有些实现类可以允许
null
值(List实现类,Set实现类和HashMap),另外一些不允许null
值(Hashtable)。 -
Collection
接口继承了Iterable
接口;AbstractCollection
抽象类直接实现了Collection
接口,并提供了一些方法的默认实现。 - Collection()中的方法如下,
方法 | 说明 |
---|---|
int size() |
返回集合中元素的数量 |
boolean isEmpty() |
集合是否为空(为空返回true) |
boolean contains(Object o) |
若包含特定的元素,则返回true
|
Iterator<E> iterator() |
返回该集合的Iterator
|
Object[] toArray() |
将集合中的元素以数组的形式返回 |
<T> T[] toArray(T[] a) |
将集合中的元素以数组的形式返回,如果指定的数组a足够大,则返回a;否则新建数组并返回。 |
boolean add(E e) |
添加操作, |
boolean remove(Object o) |
从集合中删除指定的元素 |
boolean containsAll(Collection<?> c) |
集合中是否包含集合c中所有的元素 |
boolean addAll(Collection<? extends E> c |
将集合c中元素全部添加到集合中 |
boolean retainAll(Collection<?> c) |
将不包含在集合c中的元素删除 |
void clear() |
将该集合清空 |
Iterable接口
- 该接口中只有一个方法,即
Iterator<T> iterator()
,返回一个Iterator<T>
用以访问集合; - 接口
Iterator<T>
中方法,
方法 | 说明 |
---|---|
boolean hasNext() | 集合中是否还有元素 |
E next() | 返回集合中的下一个元素 |
void remove() | 删除上次访问的对象 |
继承Collection接口的子接口
该部分主要介绍List
、Set
和Queue
接口。
List接口
- List接口允许重复元素(包括null 值),下标从0开始。
-
相比Collection接口中的方法,List中添加了有关位置的方法,
-
有关位置的存取操作,
E get(int index);//获取指定位置的元素。 E set(int index, E element);//设置指定位置的值 E remove(int index);//删除指定位置的元素 void add(int index, E element);//在指定位置插入指定的值
-
有关位置的搜索操作,
int indexOf(Object o); //返回指定元素第一次出现的位置,如果该集合不包括该元素,则返回-1 int lastIndexOf(Object o);//返回指定元素最后出现的位置,如果集合中不包含该元素,则返回-1
-
List接口提供了一个特别的iterator,即
ListIterator
,该Iterator
能够双向访问,并能够插入和替换元素,ListIterator<E> listIterator();//返回所有元素的一个iterator ListIterator<E> listIterator(int index);//返回从指定位置开始的iterator
-
其他方法,
List<E> subList(int fromIndex, int toIndex); //返回list的部分数据,从fromIndex(包括)到toIndex(不包括)
-
Set接口
- Set集合中不包含重复元素,并且最多只有一个
null
值。 - Set接口仅仅对Collection接口进行继承,没有扩展方法。
- List接口能在指定位置增加、删除元素,而Set不能。
- List接口能直接获取指定位置的值或者设置该位置的值,而Set不能。
Queue接口
- Queue按照先进先出的顺序排列元素,在尾部插入元素,在头部删除元素。
- Queue中主要有两类方法,
- 当操作失败,返回异常。
- 当操作失败,返回特殊的值(null或者false),这种情况适用于容量限制。
- Queue接口一共定义了6中操作,
方法 | 说明 |
---|---|
boolean add(E e) | 添加操作(如果立即可行且不违反容量限制),成功插入返回true。空间不足时,抛出异常 |
boolean offer(E e) | 添加操作(如果立即可行且不违反容量限制),成功插入返回true。当适用容量有限的队列时,offer()方法优于add()方法,因为可能抛出异常 |
E remove() | 删除队列的第一个元素,并返回该元素。当队列为空时,抛出异常 |
E poll() | 删除队列的第一个元素,并返回该元素。当队列为空时,返回null |
E element() | 返回队列的第一个元素。队列为空时,抛出异常 |
E peek() | 返回队列的第一个元素。队列为空时,返回null |
本文作者能力,知识有限,若有错误,欢迎留言指正!
上一篇: Java基础笔记-3