jdk——Collection接口源码学习

a、Collection接口是集合层次结构中的根接口。
b、一个集合表示一组对象,这些对象被称为集合的元素。一些集合允许重复的元素(List),而其他的则不允许(Set)。有些集合会有序的存储元素,而有些则是无需的。
c、JDK不提供此接口的任何直接实现:它提供了更具体的子接口(如Set和List)的实现。所有通过其某个子接口间接实现Collection的类应提供两个“标准”构造函数:void(无参数)构造函数,它创建一个空集合,以及包含一个Collection类型的参数的构造函数,使用与其参数相同的元素创建新集合。
d、如果此集合不支持该操作,则指定此接口中包含的“破坏性”方法(即修改其操作集合的方法)将抛出UnsupportedOperationException。如果调用对集合没有影响,则这些方法可能(但不是必须)抛出UnsupportedOperationException。例如,如果要添加的集合为空,则可以(但不是必须)在不可修改的集合上调用addAll(Collection)方法抛出异常。
e、某些集合实现对它们可能包含的元素有限制。例如,某些实现禁止null元素,并且一些实现对其元素的类型有限制。尝试添加不合格的元素会引发未经检查的异常,通常是NullPointerException或ClassCastException。
f、当存在自引用情况时,涉及递归遍历的方法会失败,包括 clone(), equals(), hashCode() 和 toString()。实现类可选择是否处理自引用情况。当前大多数的实现类没有处理自引用情况。
Collection的功能方法:
1. boolean add(T) 确保容器中持有具有泛型类型T的参数,如果没有,则将此参数添加进容器并返回true;如果集合不允许重复并且已经包含指定元素,则返回false。
2. boolean addAll(Collection<? extends E> c)将指定集合中的所有元素添加到此集合中。 只要添加了任意元素就返回true。
3. void clear() 移除容器中的所有元素。
4. boolean contains(Object o)如果此collection包含指定的元素,则返回true。 当且仅当此集合包含至少一个元素e时才返回true(o == null?e == null:o.equals(e))。
5. boolean containsAll(Collection<?> c) 如果此collection包含指定collection中的所有元素,则返回true。
6. boolean isEmpty()集合没有元素时返回true。
7. Iterator<E> iterator()返回一个Iterator,用于遍历容器中的元素。
8. boolean remove(Object o)如果参数在容器中则移除此元素的一个实例,如果做了移除操作,返回true。
9. boolean removeAll(Collection<?> c)移除参数中的集合的所有元素。
10. boolean retainAll(Collection<?> c) 只保留参数中的所有元素。
11. int size()返回容器中元素的数目。
12. Object[] toArray()返回一个包含容器中所有元素数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值