Javaソース--list、セット、コレクション

  リストおよびSetインタフェースは、彼らがコレクションを継承しています。リストには、反復要素を使用することができ、整然としたキューであり、設定は数学的概念の集合体である、重複した要素を持つことができません。セットリストと独自の実装クラスを持っています。

  利便性のために、私たちはクラスのコレクションのメソッドのほとんどを実装して、他のクラスの継承を、許可するように抽象クラスをAbstractCollection。AbstractListAbstractSetの両方の継承AbstractCollection、具体的なリストの実装クラスの継承とAbstractList、およびSet実装クラスを継承し、AbstractSet

   さらに、コレクションがあるイテレータ()メソッドは、その役割は返すことですイテレータインターフェースを。通常、我々は合格イテレータイテレータをコレクションを横断します。反復子があるインターフェイスのリストによって、リスト内のインターフェイスに固有の反復子()を返し反復子オブジェクトを

コレクションインタフェース

  パブリックインターフェースは、コレクション< E> 延びのIterable < 基本的な操作のセットを含む高度に抽象化のセットであり、E> {}:追加、削除、クリア、トラバースは、空であり、そしてサイズを取得します。

一般的な方法:

  int型のサイズは():このセット内の要素の数を返します。
  ブールのisEmpty():空のコレクション要素かどうかを判断します
  ブール(オブジェクトo)を含有する:このコレクションがtrueを返すを含む、指定された要素が含まれているかどうかを判断し、その逆
  イテレータ<E>反復子():(このコレクションは、クラスのインスタンスの保証を提供することでない限り)、順序を保証するものではありませんが返されるイテレータに要素のコレクションを返します。
  オブジェクト[]のtoArray():配列とAPIのセットとの間のブリッジとしての方法に基づいて、要素のセットは、アレイ状に変換して配列を返します
  <T> T []のtoArray(T [] a)が:指定された型の配列を返します
  ブールアドオン(E E):追加このコレクション指定された要素
  ブール削除(オブジェクトo):指定された要素を削除します
  ブールのcontainsAll(コレクションC <?>):存在する場合にtrueを返し、特定のセットかどうかを決定することを含む、およびその逆
  ブールのaddAll(コレクション<拡張E?> c)は:指定されたコレクションを追加します。
  ブールのremoveAll(コレクションcは<?>):指定されたコレクションを削除します
  ブールのretainAll(コレクションC <?>):指定したタイプの収集のみを保ちます
  明確な空():コレクション要素を空に
  ブールのequals(オブジェクトo):等しいかどうかを比較このコレクションの指定されたオブジェクト
  int型のhashCode()は:平等のための比較のためのハッシュ値のセットを返す

デフォルトの方法:
  デフォルトブールremoveIf(述語フィルタ<スーパーE?>):すべての要素に設定されたこのコレクションの出会いを除去する条件
  デフォルトSpliterator <E> spliterator(Spliterators.spliterator(これ、0)を返します):
  ストリーム<E>ストリーム(){リターンStreamSupport.stream(spliterator()、false)を;}デフォルト入力ストリームを返します
  パラレル入力ストリームを返す; {StreamSupport.stream(spliterator()、true)を返す}ストリームは、<E> parallelStream()デフォルト

一覧インタフェース

  パブリックインターフェース一覧 <E>延びコレクション <E> {}

   リストは、定義から見ることができ、それがCollectionインタフェースを継承、すなわち、リストのセットを。リストがキューを順序付けされ、リストは、各要素は、インデックスを有し、最初の要素のインデックスは0であり、ターン+ 1における次の要素のインデックス値は、重複する要素リストを可能にします。

   自然の連続コレクションのリストは、インタフェースCollectionのすべてが含まれ、それはまた、独自の追加のAPIインタフェースを持っているので、原因のリストは、整然としたキューです。API次のように:

  一般的な方法:

    add(int index,E element):在列表指定位置插入指定元素
    addAll(int index,Collection<? extends E> c):在指定位置添加集合元素
    get(int index):获取指定位置的元素
    indexOf(Object o):获取元素的第一个位置
    isEmpty():判断列表中是否有元素
    lastIndexOf(Object o):获取指定元素的最后一个位置
    listIterator():获取列表元素的列表迭代器
    listIterator(int index):从指定位置开始获取列表迭代器
    remove(int index):移除指定位置的元素
    set(int index,E element):用指定元素替换指定位置的元素
    subList(int fromIdex,int toIndex):获取fromIndex到toIndex的元素列表
  默认方法

//将集合中的元素全部替换为函数值
default void replaceAll(UnaryOperator<E> operator) {
        Objects.requireNonNull(operator);
        final ListIterator<E> li = this.listIterator();
        while (li.hasNext()) {
            li.set(operator.apply(li.next()));
        }
    }
//将集合中的内容重新排序
default void sort(Comparator<? super E> c) {
        Object[] a = this.toArray();
        Arrays.sort(a, (Comparator) c);
        ListIterator<E> i = this.listIterator();
        for (Object e : a) {
            i.next();
            i.set((E) e);
        }
    }
default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, Spliterator.ORDERED);
    }

Set接口

  public interface Set<E> extends Collection<E> {}

  Set也继承与Collection接口,且里面不能有重复元素。关于API,Set与Collection的API基本一样,不在赘述。

おすすめ

転載: www.cnblogs.com/FondWang/p/11921321.html