|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.AbstractSequentialList<E>
java.util.LinkedList<E>
E - コレクション内に存在する要素の型public class LinkedList<E>
List インタフェースのリンクリストの実装です。リストの任意のオペレーションをすべて実装し、null を含め、すべての要素を許可します。List インタフェースを実装するほかに、LinkedList クラスは、リストの先端および終端にある要素を取得および削除したり、先端および終端に要素を挿入したりするメソッド (get、remove、insert) を提供します。これらのオペレーションを使うと、リンクリストをスタック、キュー、または双方向キュー (デキュー) として使用できるようになります。
このクラスは add、poll などに先入先出法を提供する Queue インタフェースを実装します。他のスタックおよびデキューオペレーションはリストの標準オペレーションによって簡単に作成し直すことができます。これらのオペレーションは、対応する List のオペレーションより多少高速な場合もありますが、主に便宜上の理由で含まれています。
すべてのオペレーションは、二重リンクリストの場合に予期されるとおりの動作をします。リストをインデックスで処理するオペレーションは、リストの先端または終端のうち、指定したインデックスに近い方からリストを処理します。
この実装は同期化されません。複数のスレッドが同時にリストにアクセスし、それらの少なくとも 1 つが構造的にリストを変更した場合には、外部で同期をとる必要があります。構造的な変更とは 1 つ以上の要素を追加または削除するすべての処理です。要素の値だけを変更する処理は、構造的な変更ではありません。通常、リストの同期をとるには、リストを自然にカプセル化するオブジェクトで同期をとります。そのようなオブジェクトがない場合には、Collections.synchronizedList メソッドを使って「ラップ」します。これは、リストへの偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。 to prevent accidental unsynchronized access to the list:
List list = Collections.synchronizedList(new LinkedList(...));
このクラスの iterator および listIterator メソッドによって返される反復子は「フェイルファスト」です。反復子の作成後に、反復子自体の remove または add メソッド以外の方法でリストが構造的に変更されると、反復子は ConcurrentModificationException をスローします。したがって、同時変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
通常、非同期の同時変更がある場合、確かな保証を行うことは不可能なので、反復子のフェイルファストの動作を保証することはできません。フェイルファスト反復子は最善努力原則に基づき、ConcurrentModificationException をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。「反復子のフェイルファストの動作はバグを検出するためにのみ使用すべきです」
このクラスは、Java Collections Framework のメンバです。
List,
ArrayList,
Vector,
Collections.synchronizedList(List),
直列化された形式| フィールドの概要 |
|---|
| クラス java.util.AbstractList から継承されたフィールド |
|---|
modCount |
| コンストラクタの概要 | |
|---|---|
LinkedList()
空のリストを作成します。 |
|
LinkedList(Collection<? extends E> c)
指定されたコレクションの要素が含まれているリストを、要素がコレクションの反復子によって返される順序で作成します。 |
|
| メソッドの概要 | ||
|---|---|---|
boolean |
add(E o)
リストの最後に、指定された要素を追加します。 |
|
void |
add(int index,
E element)
リストの指定された位置に、指定された要素を挿入します。 |
|
boolean |
addAll(Collection<? extends E> c)
指定されたコレクション内のすべての要素を、指定されたコレクションの反復子によって返される順序でリストの最後に追加します。 |
|
boolean |
addAll(int index,
Collection<? extends E> c)
指定されたコレクション内のすべての要素を、リストの指定された位置に挿入します。 |
|
void |
addFirst(E o)
リストの先頭に、指定された要素を挿入します。 |
|
void |
addLast(E o)
リストの最後に、指定された要素を追加します。 |
|
void |
clear()
リストからすべての要素を削除します。 |
|
Object |
clone()
LinkedList のシャローコピーを返します。 |
|
boolean |
contains(Object o)
指定された要素がリストに含まれている場合に true を返します。 |
|
E |
element()
このリストの先頭 (最初の要素) を取得しますが、削除はしません。 |
|
E |
get(int index)
リスト内の指定された位置にある要素を返します。 |
|
E |
getFirst()
リスト内の最初の要素を返します。 |
|
E |
getLast()
リスト内の最後の要素を返します。 |
|
int |
indexOf(Object o)
リスト内で指定された要素が最初に検出された位置のインデックスを返します。 |
|
int |
lastIndexOf(Object o)
リスト内で指定された要素が最後に検出された位置のインデックスを返します。 |
|
ListIterator<E> |
listIterator(int index)
リスト内の指定された位置で始まる、リスト内の要素を適切な順序で反復するリスト反復子を返します。 |
|
boolean |
offer(E o)
指定された要素をこのリストの末尾 (最後の要素) に追加します。 |
|
E |
peek()
このリストの先頭 (最初の要素) を取得しますが、削除はしません。 |
|
E |
poll()
このリストの先頭 (最初の要素) を取得し、削除します。 |
|
E |
remove()
このリストの先頭 (最初の要素) を取得し、削除します。 |
|
E |
remove(int index)
リストの指定された位置にある要素を削除します。 |
|
boolean |
remove(Object o)
リスト内で最初に検出された、指定要素を削除します。 |
|
E |
removeFirst()
リストから最初の要素を削除して返します。 |
|
E |
removeLast()
リストから最後の要素を削除して返します。 |
|
E |
set(int index,
E element)
リストの指定された位置にある要素を、指定された要素で置き換えます。 |
|
int |
size()
リスト内にある要素の数を返します。 |
|
Object[] |
toArray()
リスト内のすべての要素が正しい順序で格納されている配列を返します。 |
|
|
toArray(T[] a)
リスト内のすべての要素が正しい順序で格納されている配列を返します。 |
|
| クラス java.util.AbstractSequentialList から継承されたメソッド |
|---|
iterator |
| クラス java.util.AbstractList から継承されたメソッド |
|---|
equals, hashCode, listIterator, removeRange, subList |
| クラス java.util.AbstractCollection から継承されたメソッド |
|---|
containsAll, isEmpty, removeAll, retainAll, toString |
| クラス java.lang.Object から継承されたメソッド |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| インタフェース java.util.List から継承されたメソッド |
|---|
containsAll, equals, hashCode, isEmpty, iterator, listIterator, removeAll, retainAll, subList |
| コンストラクタの詳細 |
|---|
public LinkedList()
public LinkedList(Collection<? extends E> c)
c - 要素がリストに配置されるコレクション
NullPointerException - 指定されたコレクションが null である場合| メソッドの詳細 |
|---|
public E getFirst()
NoSuchElementException - リストが空の場合public E getLast()
NoSuchElementException - リストが空の場合public E removeFirst()
NoSuchElementException - リストが空の場合public E removeLast()
NoSuchElementException - リストが空の場合public void addFirst(E o)
o - リストの先頭に挿入される要素public void addLast(E o)
o - リストの最後に挿入される要素public boolean contains(Object o)
Collection<E> 内の containsList<E> 内の containsAbstractCollection<E> 内の containso - リストにあるかどうかを調べる要素
public int size()
Collection<E> 内の sizeList<E> 内の sizeAbstractCollection<E> 内の sizepublic boolean add(E o)
Collection<E> 内の addList<E> 内の addAbstractList<E> 内の addo - リストに追加される要素
public boolean remove(Object o)
Collection<E> 内の removeList<E> 内の removeAbstractCollection<E> 内の removeo - リストから削除される要素 (その要素がある場合)
public boolean addAll(Collection<? extends E> c)
Collection<E> 内の addAllList<E> 内の addAllAbstractCollection<E> 内の addAllc - リストに挿入する要素
NullPointerException - 指定されたコレクションが null である場合AbstractCollection.add(Object)
public boolean addAll(int index,
Collection<? extends E> c)
List<E> 内の addAllAbstractSequentialList<E> 内の addAllindex - 指定されたコレクションから最初の要素を挿入する位置のインデックスc - リストに挿入される要素
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index > size())
NullPointerException - 指定されたコレクションが null である場合public void clear()
Collection<E> 内の clearList<E> 内の clearAbstractList<E> 内の clearpublic E get(int index)
List<E> 内の getAbstractSequentialList<E> 内の getindex - 返される要素のインデックス
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index >= size())
public E set(int index,
E element)
List<E> 内の setAbstractSequentialList<E> 内の setindex - 置換される要素のインデックスelement - 指定された位置に格納される要素
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index >= size())
public void add(int index,
E element)
List<E> 内の addAbstractSequentialList<E> 内の addindex - 指定された要素が挿入されるインデックスelement - 挿入される要素
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index > size())public E remove(int index)
List<E> 内の removeAbstractSequentialList<E> 内の removeindex - 削除される要素のインデックス
IndexOutOfBoundsException - 指定されたインデックスが範囲外の場合 (index < 0 || index >= size())public int indexOf(Object o)
List<E> 内の indexOfAbstractList<E> 内の indexOfo - 検索する要素
public int lastIndexOf(Object o)
List<E> 内の lastIndexOfAbstractList<E> 内の lastIndexOfo - 検索する要素
public E peek()
Queue<E> 内の peekpublic E element()
Queue<E> 内の elementNoSuchElementException - キューが空の場合public E poll()
Queue<E> 内の pollpublic E remove()
Queue<E> 内の removeNoSuchElementException - キューが空の場合public boolean offer(E o)
Queue<E> 内の offero - 追加する要素
public ListIterator<E> listIterator(int index)
リスト反復子は「フェイルファスト」です。反復子の作成後にリスト反復子自体の remove または add メソッド以外の方法でリストが構造的に変更されると、リスト反復子は ConcurrentModificationException をスローします。したがって、同時変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危機を回避するために、ただちにかつ手際よく例外をスローします。
List<E> 内の listIteratorAbstractSequentialList<E> 内の listIteratorindex - next の呼び出しによってリスト反復子から返される最初の要素のインデックス
IndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())List.listIterator(int)public Object clone()
Object 内の cloneCloneablepublic Object[] toArray()
Collection<E> 内の toArrayList<E> 内の toArrayAbstractCollection<E> 内の toArrayArrays.asList(Object[])public <T> T[] toArray(T[] a)
指定された配列にリストが収まってもさらにスペースがある場合、つまり配列にリストより多くの要素がある場合は、コレクションの最後の直後にある配列内の要素は null に設定されます。これは、呼び出し側がリストに null 要素が含まれていないことがわかっている場合には、リストの長さを判定するのに利用できます。
Collection<E> 内の toArrayList<E> 内の toArrayAbstractCollection<E> 内の toArraya - 配列が十分な大きさを持つ場合は、リストの要素が格納される配列。そうでない場合は、要素を格納するために同じ実行時の型の新しい配列が割り当てられる
ArrayStoreException - a の実行時の型がリスト内の各要素の実行時の型のスーパーセットでない場合
NullPointerException - 指定された配列が null である場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。