java Collection源码解析

Collection接口是最基本的容器结构,继承至Iterable接口。在jdk中,它并没有提供实现Collection接口的实体类,它提供了更具体的子接口List和Set。接下来来具体看看Collection的源码。

Collection源码:

package asdf;
/**
 * Created by ping.miao on 2015/7/29.
 *  Collection接口源码分析
 */
import java.util.Iterator;

public interface Collection<E> extends Iterable<E> {
    int size();//返回当前集合中元素的个数
    boolean isEmpty();//判断集合是否为空,为空的时候返回true
    boolean contains(Object o);//判断集合中手否包含一个元素与o相等 (o==null ? e==null : 0o.equals(e))
    Iterator<E> iterator();//产生一个包含该集合所有元素的迭代器
    Object[] toArray();/*
    返回一个包含集合所有元素的数组,这个数组是新产生的一个数组,集合并不对其引用进行维护,换句话说数组的修改
    并不反应在集合上,相当于把集合的元素copy到数组里
    */
    <T> T[] toArray(T[] a);/**同样是返回集合所有元素组成的数组,不同上面的是该方法返回的数组类型是参数指定
     *的数组类型,所以,该方法可能会抛出ArrayStoreException - 指定类型不是此Collection每个元素的运行的超类型
     * NullPointerException - 如果指定的数组为 null
     */
    boolean add(E e);/**插入元素
     * UnsupportedOperationException - 如果此 collection 不支持 add 操作
     * ClassCastException - 如果指定元素的类不允许它添加到此 collection 中
     * NullPointerException - 如果指定的元素为 null,并且此 collection 不允许 null 元素
     * IllegalArgumentException - 如果元素的某属性不允许它添加到此 collection 中
     * IllegalStateException - 如果由于插入限制,元素不能在此时间添加
    */
    boolean remove(Object o);/**
     * 删掉元素o
     * 假如集合中有满足 (o==null ? e==null : o.equals(o)) 的元素,返回true
     * 可能会抛出异常:ClassCastException - 如果指定元素的类型与此 collection 不兼容(可选)
     * NullPointerException - 如果指定的元素为 null,并且此 collection 不允许 null 元素(可选)
     * UnsupportedOperationException - 如果此 collection 不支持 remove 操作
     */
    boolean containsAll(java.util.Collection<?> c);
    boolean addAll(java.util.Collection<? extends E> c);
    boolean removeAll(java.util.Collection<?> c);
    boolean retainAll(java.util.Collection<?> c);
    void clear();
    boolean equals(Object o);
    int hashCode();//产生hashCode
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值