zoukankan      html  css  js  c++  java
  • JDK源码(1.7) -- java.util.Collection<E>

     java.util.Collection<E> 源码分析(JDK1.7)

    ---------------------------------------------------------------------------------

    java.util.Collection<E>是一个接口,它的定义如下:

    1 public interface Collection<E> extends Iterable<E> {
    2    // Query Operations
    3    // Modification Operations
    4    // Bulk Operations
    5    // Comparison and hashing
    6 }

    (1)从定义中可以看出Collection接口中定义了:查询方法修改方法批量操作方法哈希和比较方法。

    (2)Collection是一个根接口,表示一组对象,这些对象也称为collection的元素。

    (3)Collection的实现类中有这样的特征: 有些collection是允许重复元素的;有些collection是不允许重复元素的;有些collection是有序的;有些collection是无序的。

    (4)JDK不提供对Collection接口的直接实现,而且提供了两个更为具体的接口去实现(如:java.util.List和java.util.Set)

    ----------------------------------------------------------------------------------

    下面来看看java.util.Collection<E>中具体有哪些方法

    从下面的表格中可以看出java.util.Collection<E>接口中一共有15个方法,其中查询操作6个;修改操作2个;批量操作5个;比较和哈希操作2个

    查询操作 int size() 返回此 collection 中的元素数。如果此 collection 包含的元素大于 Integer.MAX_VALUE,则返回 Integer.MAX_VALUE
    boolean isEmpty() 如果此 collection 不包含元素,则返回 true,否则返回false
    boolean contains(Object o) 如果此 collection 包含指定的元素,则返回 true。更确切地讲,当且仅当此 collection 至少包含一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,返回 true
    Iterator<E> iterator() 返回在此 collection 的元素上进行迭代的迭代器。关于元素返回的顺序没有任何保证(除非此 collection 是某个能提供保证顺序的类实例)。
    Object[] toArray() 返回包含此 collection 中所有元素的数组。如果 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。
    <T> T[] toArray(T[] a) 返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将分配一个具有指定数组的运行时类型和此 collection 大小的新数组。
    修改操作 boolean add(E e) 将元素e添加到此集合中,如果添加成功则返回true,添加失败则返回false
    boolean remove(Object o) 从此 collection 中移除指定元素o的单个实例,如果操作成功则返回true,操作失败则返回false
    批量操作 boolean containsAll(Collection<?> c ) 如果此 collection 包含指定 collection 中的所有元素,则返回 true
    addAll(Collection<? extends E> c) 将指定 collection 中的所有元素都添加到此 collection 中.
    boolean removeAll(Collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素。
    boolean retainAll(Collection<?> c) 仅保留此 collection 中那些也包含在指定 collection 的元素。
    void  clear() 移除此 collection 中的所有元素。
    比较和哈希操作 boolean equals(Object o) 比较此 collection 与指定对象是否相等
    int hashCode() 返回此 collection 的哈希码值

    ----------------------------------------------------------------------------------

    java.util.Collection<E>源码如下:(看看下面的源码,定义的很规范,各种操作都有-----> 此时应该想到它的实现类该有多可怜,要实现多少方法呀。~_~)

     1 package java.util;
     2 
     3 
     4 public interface Collection<E> extends Iterable<E> {
     5     // Query Operations
     6 
     7     int size();
     8 
     9     boolean isEmpty();
    10 
    11     boolean contains(Object o);
    12 
    13     Iterator<E> iterator();
    14 
    15     Object[] toArray();
    16 
    17     <T> T[] toArray(T[] a);
    18 
    19     // Modification Operations
    20 
    21     boolean add(E e);
    22 
    23     boolean remove(Object o);
    24 
    25 
    26     // Bulk Operations
    27 
    28     boolean containsAll(Collection<?> c);
    29 
    30     boolean addAll(Collection<? extends E> c);
    31 
    32     boolean removeAll(Collection<?> c);
    33 
    34     boolean retainAll(Collection<?> c);
    35 
    36     void clear();
    37 
    38 
    39     // Comparison and hashing
    40 
    41     boolean equals(Object o);
    42 
    43     int hashCode();
    44 }

    ----------------------------------------------------------------------------------

    ----------------------------------------------------------------------------------

  • 相关阅读:
    RT-Thread can
    scons自动化构建工具
    Android 数据库 SQLiteOpenHelper
    请确保二进制储存在指定的路径中,或者调试他以检查该二进制或相关的DLL文件
    攻防世界misc新手区前三题
    基于session对象实现简单的购物车应用
    MS Excel中的内部日期处理方法
    如何实现对指定日期进行增减日期操作结果的输出
    2020前端大厂最新面试题,这一波我是用“身子换来的”
    字节、拼多多前端面经!
  • 原文地址:https://www.cnblogs.com/xinhuaxuan/p/6341502.html
Copyright © 2011-2022 走看看