• Collection


    首先来看下Collection接口的层次结构,参考JDK1.8

                           

    现在来分析一下Collection接口的JDK源码:

    public interface Collection<E> extends Iterable<E> {

        //返回集合中元素的数量,如果这个集合中的元素数量大于Integer.MAX_VALUE,则返回Integer.MAX_VALUE。

        int size();

        //如果集合为空集合(不包含任何元素),则返回true;若至少包含一个元素,则返回false。

        boolean isEmpty();

        //如何集合中包含指定的元素,则返回true;否则返回false。

        //更确切的说,当且仅当集合中至少包含一个满足(o == null? e == null : o.equals(e))的元素e时返回true。

        //可以重写E的equals方法,来指定在何种情况下两个E对象是equals相等的。

        boolean contains(Object o);

        //返回在此集合的元素上进行迭代的迭代器。关于元素返回的顺序没有任何保证(除非此集合是某个能提供保证顺序的类实例)。

        Iterator<E> iterator();

        //按适当顺序返回一个包含此集合中所有元素的数组,如何此集合对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。

        //返回的数组将是安全的?因为此集合并不维护对返回数组的任何引用,因此调用者可以随意修改返回的数组。

        Object[] toArray();

        //返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该 collection,则返回包含此

       //collection 元素的数组。否则,将分配一个具有指定数组的运行时类型和此 collection 大小的新数组。如果指定的数组能容纳 collection,并有剩余空间(即数组的元素比 collection 的元素多),那么会将数组中紧接 collection 尾部的元素设置为null。(只有在调用者知道此 collection 没有包含任何null元素时才能用此方法确定 collection 的长度。)

    如果此 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。

    像toArray()方法一样,此方法充当基于数组的 API 与基于 collection 的 API 之间的桥梁。更进一步说,此方法允许对输出数组的运行时类型进行精确控制,并且在某些情况下,可以用来节省分配开销。

        <T> T[] toArray(T[] a);

        //

        boolean add(E e);

        //

        

    }

  • 相关阅读:
    【洛谷4005】小 Y 和地铁(搜索)
    【洛谷4348】[CERC2015] Cow Confinement(扫描线+线段树优化DP)
    【洛谷7016】[CERC2013] Captain Obvious and the Rabbit-Man(手动高斯消元)
    【洛谷3438】[POI2006] ZAB-Frogs(斜率优化)
    【洛谷3426】[POI2005] SZA-Template(KMP)
    【洛谷5157】[USACO18DEC] The Cow Gathering P(拓扑)
    【洛谷5155】[USACO18DEC] Balance Beam P(期望+凸壳)
    【洛谷5204】[USACO19JAN] Train Tracking 2 P(DP)
    【CF757F】Team Rocket Rises Again(最短路图+拓扑)
    【LOJ3038】「JOISC 2019 Day3」穿越时空 Bitaro(线段树)
  • 原文地址:https://www.cnblogs.com/hanw1991/p/7803637.html
Copyright © 2020-2023  润新知