モジュール java.base
パッケージ java.util

クラスLinkedList<E>

  • 型パラメータ:
    E - このコレクション内に保持される要素の型
    すべての実装されたインタフェース:
    Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>

    public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, Serializable
    ListおよびDequeインタフェースの二重リンク・リスト実装です。 リストの任意のオペレーションをすべて実装し、nullを含むすべての要素を許容します。

    すべてのオペレーションは、二重リンク・リストの場合に予期されるとおりの動作をします。 リストをインデックスで処理するオペレーションは、リストの先端または終端のうち、指定したインデックスに近い方からリストをトラバースします。

    この実装はsynchronizedされません。 複数のスレッドが並行してリンク・リストにアクセスし、スレッドの少なくとも1つが構造的にリストを変更する場合には、外部でsynchronizedされる必要があります 構造的な変更とは1つ以上の要素を追加または削除するすべての処理です。要素の値を変更するだけの処理は、構造的な変更ではありません。 これは通常、リストを自然にカプセル化する一部のオブジェクトでsynchronizedすることによって達成されます。 そのようなオブジェクトが存在しない場合は、Collections.synchronizedListメソッドを使用してリストをラップするようにしてください。 リストが誤ってsynchronizedなしでアクセスされるのを防ぐために、作成時に行うことをお薦めします。

       List list = Collections.synchronizedList(new LinkedList(...));

    このクラスのiteratorおよびlistIteratorメソッドによって返されるイテレータは、フェイルファストです。イテレータの作成後に、イテレータ自体のremoveまたはaddメソッド以外の方法でリストが構造的に変更されると、イテレータはConcurrentModificationExceptionをスローします。 このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。

    通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、イテレータのフェイルファストの動作を保証することはできません。 フェイルファスト・イテレータは、ベスト・エフォート・ベースでConcurrentModificationExceptionをスローします。 したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。イテレータのフェイルファストの動作はバグを検出するためにのみ使用すべきです。

    このクラスは、Java Collections Frameworkのメンバーです。

    導入されたバージョン:
    1.2
    関連項目:
    List, ArrayList, 直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      LinkedList()
      空のリストを構築します。
      LinkedList​(Collection<? extends E> c)
      指定されたコレクションの要素が含まれているリストを、コレクションのイテレータによって返される順序で構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      void add​(int index, E element)
      このリスト内の指定された位置に指定された要素を挿入します。
      boolean add​(E e)
      このリストの最後に、指定された要素を追加します。
      boolean addAll​(int index, Collection<? extends E> c)
      指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します。
      boolean addAll​(Collection<? extends E> c)
      指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でこのリストの最後に追加します。
      void addFirst​(E e)
      このリストの先頭に、指定された要素を挿入します。
      void addLast​(E e)
      このリストの最後に、指定された要素を追加します。
      void clear()
      このリストからすべての要素を削除します。
      Object clone()
      このLinkedListのシャロー・コピーを返します。
      boolean contains​(Object o)
      指定された要素がこのリストに含まれている場合にtrueを返します。
      Iterator<E> descendingIterator()
      この両端キュー内の要素を逆順で反復処理するイテレータを返します。
      E element()
      このリストの先頭(最初の要素)を取得しますが、削除はしません。
      E get​(int index)
      このリスト内の指定された位置にある要素を返します。
      E getFirst()
      このリスト内の最初の要素を返します。
      E getLast()
      このリスト内の最後の要素を返します。
      int indexOf​(Object o)
      指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。
      int lastIndexOf​(Object o)
      指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。
      ListIterator<E> listIterator​(int index)
      このリスト内の要素を適切な順序で反復するリスト・イテレータ(リスト内の指定された位置で始まる)を返します。
      boolean offer​(E e)
      指定された要素をこのリストの末尾(最後の要素)に追加します。
      boolean offerFirst​(E e)
      このリストの先頭に、指定された要素を挿入します。
      boolean offerLast​(E e)
      このリストの末尾に、指定された要素を挿入します。
      E peek()
      このリストの先頭(最初の要素)を取得しますが、削除はしません。
      E peekFirst()
      このリストの最初の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
      E peekLast()
      このリストの最後の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
      E poll()
      このリストの先頭(最初の要素)を取得し、削除します。
      E pollFirst()
      このリストの最初の要素を取得および削除します。このリストが空の場合はnullを返します。
      E pollLast()
      リストの最後の要素を取得および削除します。このリストが空の場合はnullを返します。
      E pop()
      このリストが表すスタックから要素をポップします。
      void push​(E e)
      このリストが表すスタック上に要素をプッシュします。
      E remove()
      このリストの先頭(最初の要素)を取得し、削除します。
      E remove​(int index)
      このリストの指定された位置にある要素を削除します。
      boolean remove​(Object o)
      指定された要素がこのリストにあれば、その最初のものをリストから削除します。
      E removeFirst()
      このリストから最初の要素を削除して返します。
      boolean removeFirstOccurrence​(Object o)
      このリスト内で最初に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。
      E removeLast()
      このリストから最後の要素を削除して返します。
      boolean removeLastOccurrence​(Object o)
      このリスト内で最後に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。
      E set​(int index, E element)
      このリストの指定された位置にある要素を、指定された要素で置き換えます。
      int size()
      このリスト内にある要素の数を返します。
      Spliterator<E> spliterator()
      このリスト内の要素に対する遅延バインディングおよびフェイルファスト Spliteratorを作成します。
      Object[] toArray()
      このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。
      <T> T[] toArray​(T[] a)
      このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列の実行時の型は、指定された配列の型になります。
      • インタフェース java.util.Dequeで宣言されたメソッド

        iterator
      • インタフェース java.lang.Iterableで宣言されたメソッド

        forEach
    • コンストラクタの詳細

      • LinkedList

        public LinkedList()
        空のリストを構築します。
      • LinkedList

        public LinkedList​(Collection<? extends E> c)
        指定されたコレクションの要素が含まれているリストを、コレクションのイテレータによって返される順序で構築します。
        パラメータ:
        c - 要素がこのリストに配置されるコレクション
        例外:
        NullPointerException - 指定されたコレクションがnullである場合
    • メソッドの詳細

      • getFirst

        public E getFirst()
        このリスト内の最初の要素を返します。
        定義:
        getFirst、インタフェース: Deque<E>
        戻り値:
        このリスト内の最初の要素
        例外:
        NoSuchElementException - このリストが空の場合
      • getLast

        public E getLast()
        このリスト内の最後の要素を返します。
        定義:
        getLast、インタフェース: Deque<E>
        戻り値:
        このリスト内の最後の要素
        例外:
        NoSuchElementException - このリストが空の場合
      • removeFirst

        public E removeFirst()
        このリストから最初の要素を削除して返します。
        定義:
        removeFirst、インタフェース: Deque<E>
        戻り値:
        このリストからの最初の要素
        例外:
        NoSuchElementException - このリストが空の場合
      • removeLast

        public E removeLast()
        このリストから最後の要素を削除して返します。
        定義:
        removeLast、インタフェース: Deque<E>
        戻り値:
        このリストからの最後の要素
        例外:
        NoSuchElementException - このリストが空の場合
      • addFirst

        public void addFirst​(E e)
        このリストの先頭に、指定された要素を挿入します。
        定義:
        addFirst、インタフェース: Deque<E>
        パラメータ:
        e - 追加する要素
      • addLast

        public void addLast​(E e)
        このリストの最後に、指定された要素を追加します。

        このメソッドは、add(E)と同等です。

        定義:
        addLast、インタフェース: Deque<E>
        パラメータ:
        e - 追加する要素
      • contains

        public boolean contains​(Object o)
        指定された要素がこのリストに含まれている場合にtrueを返します。 より正式には、このリストにObjects.equals(o, e)などの少なくとも1つの要素eが含まれている場合にのみtrueを返します。
        定義:
        contains、インタフェース: Collection<E>
        定義:
        contains、インタフェース: Deque<E>
        定義:
        contains、インタフェース: List<E>
        オーバーライド:
        contains、クラス: AbstractCollection<E>
        パラメータ:
        o - このリスト内にあるかどうかが判定される要素
        戻り値:
        指定された要素がこのリスト内にある場合はtrue
      • size

        public int size()
        このリスト内にある要素の数を返します。
        定義:
        size、インタフェース: Collection<E>
        定義:
        size、インタフェース: Deque<E>
        定義:
        size、インタフェース: List<E>
        戻り値:
        このリスト内の要素数
      • add

        public boolean add​(E e)
        このリストの最後に、指定された要素を追加します。

        このメソッドは、addLast(E)と同等です。

        定義:
        add、インタフェース: Collection<E>
        定義:
        add、インタフェース: Deque<E>
        定義:
        add、インタフェース: List<E>
        定義:
        add、インタフェース: Queue<E>
        オーバーライド:
        add、クラス: AbstractList<E>
        パラメータ:
        e - このリストに追加される要素
        戻り値:
        true (Collection.add(E)で指定されているとおり)
      • remove

        public boolean remove​(Object o)
        指定された要素がこのリストにあれば、その最初のものをリストから削除します。 このリストにその要素がない場合は、変更されません。 より正式には、Objects.equals(o, get(i)) (そのような要素が存在する場合)のような最も低いインデックスiを持つ要素を削除します。 指定された要素がこのリストに含まれていた場合、つまり、呼出しの結果としてこのリストが変更された場合にtrueを返します。
        定義:
        remove、インタフェース: Collection<E>
        定義:
        remove、インタフェース: Deque<E>
        定義:
        remove、インタフェース: List<E>
        オーバーライド:
        remove、クラス: AbstractCollection<E>
        パラメータ:
        o - このリストから削除される要素(その要素が存在する場合)
        戻り値:
        指定された要素がこのリストに含まれていた場合はtrue
      • addAll

        public boolean addAll​(Collection<? extends E> c)
        指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でこのリストの最後に追加します。 オペレーションの進行中に指定されたコレクションが変更された場合の、このオペレーションの動作は定義されていません。 (これは、指定されたコレクションがこのリストで、しかも空ではない場合に起こります。)
        定義:
        addAll、インタフェース: Collection<E>
        定義:
        インタフェースDeque<E>内のaddAll
        定義:
        addAll、インタフェース: List<E>
        オーバーライド:
        addAll、クラス: AbstractCollection<E>
        パラメータ:
        c - このリストに追加される要素を含むコレクション
        戻り値:
        呼出しの結果としてこのリストが変更された場合はtrue
        例外:
        NullPointerException - 指定されたコレクションがnullである場合
        関連項目:
        AbstractCollection.add(Object)
      • addAll

        public boolean addAll​(int index,
                              Collection<? extends E> c)
        指定されたコレクション内のすべての要素を、このリストの指定された位置に挿入します。 その位置の現在の要素(ある場合)とそれ以降の要素を右に移動します(インデックスが増えます)。 新しい要素は、指定されたコレクションのイテレータによって返される順番でリストに挿入されます。
        定義:
        addAll、インタフェース: List<E>
        オーバーライド:
        addAll、クラス: AbstractSequentialList<E>
        パラメータ:
        index - 指定されたコレクションの最初の要素を挿入する位置のインデックス
        c - このリストに追加される要素を含むコレクション
        戻り値:
        呼出しの結果としてこのリストが変更された場合はtrue
        例外:
        IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())
        NullPointerException - 指定されたコレクションがnullである場合
      • clear

        public void clear()
        このリストからすべての要素を削除します。 この呼出しが戻ると、このリストは空になります。
        定義:
        clear、インタフェース: Collection<E>
        定義:
        clear、インタフェース: List<E>
        オーバーライド:
        clear、クラス: AbstractList<E>
      • get

        public E get​(int index)
        このリスト内の指定された位置にある要素を返します。
        定義:
        get、インタフェース: List<E>
        オーバーライド:
        get、クラス: AbstractSequentialList<E>
        パラメータ:
        index - 返される要素のインデックス
        戻り値:
        このリスト内の指定された位置にある要素
        例外:
        IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
      • set

        public E set​(int index,
                     E element)
        このリストの指定された位置にある要素を、指定された要素で置き換えます。
        定義:
        set、インタフェース: List<E>
        オーバーライド:
        set、クラス: AbstractSequentialList<E>
        パラメータ:
        index - 置換される要素のインデックス
        element - 指定された位置に格納される要素
        戻り値:
        指定された位置に以前あった要素
        例外:
        IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
      • add

        public void add​(int index,
                        E element)
        このリスト内の指定された位置に指定された要素を挿入します。 その位置の現在の要素(ある場合)とそれ以降の要素を右に移動します(インデックスに1を加算)。
        定義:
        add、インタフェース: List<E>
        オーバーライド:
        add、クラス: AbstractSequentialList<E>
        パラメータ:
        index - 指定の要素が挿入される位置のインデックス
        element - 挿入される要素
        例外:
        IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())
      • remove

        public E remove​(int index)
        このリストの指定された位置にある要素を削除します。 後続の要素を左に移動します(インデックスから1を減算)。 リストから削除された要素が返されます。
        定義:
        remove、インタフェース: List<E>
        オーバーライド:
        remove、クラス: AbstractSequentialList<E>
        パラメータ:
        index - 削除される要素のインデックス
        戻り値:
        指定された位置に以前あった要素
        例外:
        IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
      • indexOf

        public int indexOf​(Object o)
        指定された要素がこのリスト内で最初に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。 より正式には、Objects.equals(o, get(i))のような最も低いインデックスi、またはそのようなインデックスがない場合は -1を返します。
        定義:
        indexOf、インタフェース: List<E>
        オーバーライド:
        indexOf、クラス: AbstractList<E>
        パラメータ:
        o - 検索する要素
        戻り値:
        指定された要素がこのリスト内で最初に検出された位置のインデックス。その要素がこのリストにない場合は -1
      • lastIndexOf

        public int lastIndexOf​(Object o)
        指定された要素がこのリスト内で最後に検出された位置のインデックスを返します。指定された要素がこのリストにない場合は -1を返します。 より正式には、Objects.equals(o, get(i))のような最高のインデックスi、またはそのようなインデックスがない場合は -1を返します。
        定義:
        lastIndexOf、インタフェース: List<E>
        オーバーライド:
        lastIndexOf、クラス: AbstractList<E>
        パラメータ:
        o - 検索する要素
        戻り値:
        指定された要素がこのリスト内で最後に検出された位置のインデックス。その要素がこのリストにない場合は -1
      • peek

        public E peek()
        このリストの先頭(最初の要素)を取得しますが、削除はしません。
        定義:
        peek、インタフェース: Deque<E>
        定義:
        peek、インタフェース: Queue<E>
        戻り値:
        このリストの先頭。このリストが空の場合はnull
        導入されたバージョン:
        1.5
      • element

        public E element()
        このリストの先頭(最初の要素)を取得しますが、削除はしません。
        定義:
        element、インタフェース: Deque<E>
        定義:
        element、インタフェース: Queue<E>
        戻り値:
        このリストの先頭
        例外:
        NoSuchElementException - このリストが空の場合
        導入されたバージョン:
        1.5
      • poll

        public E poll()
        このリストの先頭(最初の要素)を取得し、削除します。
        定義:
        poll、インタフェース: Deque<E>
        定義:
        poll、インタフェース: Queue<E>
        戻り値:
        このリストの先頭。このリストが空の場合はnull
        導入されたバージョン:
        1.5
      • remove

        public E remove()
        このリストの先頭(最初の要素)を取得し、削除します。
        定義:
        remove、インタフェース: Deque<E>
        定義:
        remove、インタフェース: Queue<E>
        戻り値:
        このリストの先頭
        例外:
        NoSuchElementException - このリストが空の場合
        導入されたバージョン:
        1.5
      • offer

        public boolean offer​(E e)
        指定された要素をこのリストの末尾(最後の要素)に追加します。
        定義:
        offer、インタフェース: Deque<E>
        定義:
        offer、インタフェース: Queue<E>
        パラメータ:
        e - 追加する要素
        戻り値:
        true (Queue.offer(E)で指定されているとおり)
        導入されたバージョン:
        1.5
      • offerFirst

        public boolean offerFirst​(E e)
        このリストの先頭に、指定された要素を挿入します。
        定義:
        offerFirst、インタフェース: Deque<E>
        パラメータ:
        e - 挿入する要素
        戻り値:
        true (Deque.offerFirst(E)で指定されているとおり)
        導入されたバージョン:
        1.6
      • offerLast

        public boolean offerLast​(E e)
        このリストの末尾に、指定された要素を挿入します。
        定義:
        offerLast、インタフェース: Deque<E>
        パラメータ:
        e - 挿入する要素
        戻り値:
        true (Deque.offerLast(E)で指定されているとおり)
        導入されたバージョン:
        1.6
      • peekFirst

        public E peekFirst()
        このリストの最初の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
        定義:
        peekFirst、インタフェース: Deque<E>
        戻り値:
        このリストの最初の要素。このリストが空の場合はnull
        導入されたバージョン:
        1.6
      • peekLast

        public E peekLast()
        このリストの最後の要素を取得しますが、削除はしません。このリストが空の場合はnullを返します。
        定義:
        peekLast、インタフェース: Deque<E>
        戻り値:
        このリストの最後の要素。このリストが空の場合はnull
        導入されたバージョン:
        1.6
      • pollFirst

        public E pollFirst()
        このリストの最初の要素を取得および削除します。このリストが空の場合はnullを返します。
        定義:
        pollFirst、インタフェース: Deque<E>
        戻り値:
        このリストの最初の要素。このリストが空の場合はnull
        導入されたバージョン:
        1.6
      • pollLast

        public E pollLast()
        リストの最後の要素を取得および削除します。このリストが空の場合はnullを返します。
        定義:
        pollLast、インタフェース: Deque<E>
        戻り値:
        このリストの最後の要素。このリストが空の場合はnull
        導入されたバージョン:
        1.6
      • push

        public void push​(E e)
        このリストが表すスタック上に要素をプッシュします。 つまり、このリストの先頭に要素を挿入します。

        このメソッドは、addFirst(E)と同等です。

        定義:
        push、インタフェース: Deque<E>
        パラメータ:
        e - プッシュする要素
        導入されたバージョン:
        1.6
      • pop

        public E pop()
        このリストが表すスタックから要素をポップします。 つまり、このリストの最初の要素を削除して返します。

        このメソッドは、removeFirst()と同等です。

        定義:
        pop、インタフェース: Deque<E>
        戻り値:
        このリストの先頭の要素(このリストが表すスタックの一番上)
        例外:
        NoSuchElementException - このリストが空の場合
        導入されたバージョン:
        1.6
      • removeFirstOccurrence

        public boolean removeFirstOccurrence​(Object o)
        このリスト内で最初に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。 その要素がリストにない場合、変更はありません。
        定義:
        removeFirstOccurrence、インタフェース: Deque<E>
        パラメータ:
        o - このリストから削除される要素(その要素が存在する場合)
        戻り値:
        指定された要素がリストに含まれていた場合はtrue
        導入されたバージョン:
        1.6
      • removeLastOccurrence

        public boolean removeLastOccurrence​(Object o)
        このリスト内で最後に検出された、指定された要素を削除します(リストを先頭から末尾の方向にトラバースした場合)。 その要素がリストにない場合、変更はありません。
        定義:
        removeLastOccurrence、インタフェース: Deque<E>
        パラメータ:
        o - このリストから削除される要素(その要素が存在する場合)
        戻り値:
        指定された要素がリストに含まれていた場合はtrue
        導入されたバージョン:
        1.6
      • listIterator

        public ListIterator<E> listIterator​(int index)
        このリスト内の要素を適切な順序で反復するリスト・イテレータ(リスト内の指定された位置で始まる)を返します。 List.listIterator(int)の一般規約に従います。

        リスト・イテレータはフェイルファストです。イテレータの作成後に、リスト・イテレータ自体のremoveまたはaddメソッド以外の方法でリストが構造的に変更されると、リスト・イテレータはConcurrentModificationExceptionをスローします。 このように、並行して変更が行われると、イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。

        定義:
        listIterator、インタフェース: List<E>
        定義:
        listIterator、クラス: AbstractSequentialList<E>
        パラメータ:
        index - リスト・イテレータから(next呼出しによって)返される最初の要素のインデックス
        戻り値:
        このリスト内の要素を適切な順序で反復するListIterator (リスト内の指定された位置で始まる)
        例外:
        IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index> size())
        関連項目:
        List.listIterator(int)
      • descendingIterator

        public Iterator<E> descendingIterator()
        インタフェースからコピーされた説明: Deque
        この両端キュー内の要素を逆順で反復処理するイテレータを返します。 要素は最後(末尾)から最初(先頭)の順に返されます。
        定義:
        descendingIterator、インタフェース: Deque<E>
        戻り値:
        この両端キュー内の要素を逆順で反復処理するイテレータ
        導入されたバージョン:
        1.6
      • clone

        public Object clone()
        このLinkedListのシャロー・コピーを返します。 要素自体は複製されません。
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このLinkedListインスタンスのシャロー・コピー
        関連項目:
        Cloneable
      • toArray

        public Object[] toArray()
        このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。

        返される配列は、それへの参照がこのリストで保持されない場合に、安全になります。 (つまり、このメソッドは新しい配列を割り当てます。) このため、呼出し側は、返された配列を自由に変更できます。

        このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。

        定義:
        toArray、インタフェース: Collection<E>
        定義:
        toArray、インタフェース: List<E>
        オーバーライド:
        toArray、クラス: AbstractCollection<E>
        戻り値:
        このリスト内のすべての要素を適切な順序で含んでいる配列
        関連項目:
        Arrays.asList(Object[])
      • toArray

        public <T> T[] toArray​(T[] a)
        このリスト内のすべての要素を適切な順序で(最初の要素から最後の要素へ)含んでいる配列を返します。返される配列の実行時の型は、指定された配列の型になります。 指定された配列にリストが収まる場合は、その配列で返されます。 それ以外の場合は、指定された配列の実行時の型とこのリストのサイズを使って新しい配列が割り当てられます。

        指定された配列にリストが収まり、さらに余分な領域がある場合(配列にリストより多くの要素がある場合)、配列でリストの末尾に続く要素はnullに設定されます。 このリストにnull要素がないことを呼出し側が知っている場合にのみ、この特性を利用してリストの長さを判断できます。

        toArray()メソッドと同じように、このメソッドは、配列ベースのAPIとコレクションベースのAPIの間の橋渡し役として機能します。 さらに、このメソッドでは出力配列の実行時の型を正確に制御できるため、環境によっては割当ての手間を抑えるために使用できます。

        xが、文字列だけからなるリストであることがわかっていると仮定します。 次のコードを使うと、新しく割り当てられたStringの配列にリストをダンプできます。

             String[] y = x.toArray(new String[0]);
        toArray(new Object[0])は、機能の点でtoArray()と同一です。

        定義:
        toArray、インタフェース: Collection<E>
        定義:
        toArray、インタフェース: List<E>
        オーバーライド:
        toArray、クラス: AbstractCollection<E>
        型パラメータ:
        T - コレクションを格納する配列のコンポーネント型
        パラメータ:
        a - 配列が十分な大きさを持つ場合は、このリストの要素の格納先の配列。配列のサイズが十分でない場合は、同じ実行時の型で新しい配列が格納用として割り当てられる。
        戻り値:
        リストの要素が格納されている配列
        例外:
        ArrayStoreException - 指定された配列の実行時の型が、このリスト内のすべての要素の実行時の型のスーパー・タイプではない場合
        NullPointerException - 指定された配列がnullである場合