Collection接口源码解析

所在包

package java.util;

继承Iterable类

public interface Collection<E> extends Iterable<E> {
// 内部代码下面讲解
}

获得集合内元素的数量
当数量大于Integer.MAX_VALUE时候,只能返回Integer.MAX_VALUE


    int size();

判断集合是否为空
空的时候返回true

    boolean isEmpty();

判断集合是否包含元素 o
包含的时候返回true,否则返回false
当元素类型与集合内元素类型不匹配的时候,抛出ClassCastException 异常
当元素为null,而集合内元素不允许null时候,抛出NullPointerException异常

    boolean contains(Object o);

返回一个迭代器

    Iterator<E> iterator();

返回包含集合内相同元素的数组
当集合是有序的时候,返回数组也是有序的

    Object[] toArray();

利用集合元素更新输入的参数数组,返回更新后的数组
如果数组元素类型不是集合元素中类型的超类,抛出ArrayStoreException异常
数组是null,抛出NullPointerException异常


     * @throws ArrayStoreException if the runtime type of the specified array
     *         is not a supertype of the runtime type of every element in
     *         this collection
     * @throws NullPointerException if the specified array is null
     */
    <T> T[] toArray(T[] a);

添加元素
添加成功返回true
add
集合不支持添加元素,抛出UnsupportedOperationException异常
添加元素为null,集合不支持null,抛出NullPointerException异常
如果某些元素的属性可以防止它被添加到这个集合中,抛出IllegalArgumentException异常
如果元素不能被添加在这个时候由于插入的限制,抛出IllegalStateException异常

    boolean add(E e);

删除元素o
删除成功返回true
元素类型和集合内元素类型不匹配,抛出ClassCastException异常
元素为null,集合不允许null,抛出NullPointerException异常
集合不允许删除元素,抛出UnsupportedOperationException异常

    boolean remove(Object o);

判断集合c中的元素是否都在当前集合中
都在,返回true
类型不匹配,抛出ClassCastException异常
集合c元素有null,当前集合不允许null,抛出NullPointerException异常

    boolean containsAll(Collection<?> c);

集合c中的元素全部添加到当前集合中
添加成功,返回true
不支持添加,抛出UnsupportedOperationException异常
类型不匹配,抛出ClassCastException异常
集合c有null,当前集合不允许null,抛出NullPointerException异常
某些元素属性不允许添加集合c,抛出IllegalArgumentException异常
不可以插入所有元素,抛出IllegalStateException异常

    boolean removeAll(Collection<?> c);

保留两个集合共有的元素
不支持操作,抛出UnsupportedOperationException异常
类型不一样,抛出ClassCastException异常
null的问题,抛出NullPointerException异常

    boolean retainAll(Collection<?> c);

清空元素
不支持操作,抛出UnsupportedOperationException异常

    void clear();

判断是否相等

    boolean equals(Object o);

获取hashcode

    int hashCode();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值