|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.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) を提供します。これらのオペレーションを使うと、リンクリストをスタック、キュー、または 双方向キュー として使用できるようになります。
このクラスは Deque インタフェースを実装しており、add、poll に対して先入れ先出しのキューオペレーションを提供するほか、その他のスタックオペレーションや両端キューオペレーションも提供します。
すべてのオペレーションは、二重リンクリストの場合に予期されるとおりの動作をします。リストをインデックスで処理するオペレーションは、リストの先端または終端のうち、指定したインデックスに近い方からリストをトラバースします。
この実装は同期化されません。複数のスレッドが並行してリンクリストにアクセスし、それらの少なくとも 1 つが構造的にリストを変更した場合には、外部で同期をとる必要があります。構造的な変更とは 1 つ以上の要素を追加または削除するすべての処理です。 要素の値だけを変更する処理は、構造的な変更ではありません。通常、リストの同期をとるには、リストを自然にカプセル化するオブジェクトで同期をとります。
この種のオブジェクトがない場合には、Collections.synchronizedList
メソッドを使用してリストを「ラップ」する必要があります。これは、リストへの偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。
List list = Collections.synchronizedList(new LinkedList(...));
このクラスの iterator および listIterator メソッドによって返される反復子は、「フェイルファスト」です。反復子の作成後に、反復子自体の remove または add メソッド以外の方法でリストが構造的に変更されると、反復子は ConcurrentModificationException
をスローします。このように、並行して変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
通常、非同期の並行変更がある場合、確かな保証を行うことは不可能なので、反復子のフェイルファストの動作を保証することはできません。フェイルファスト反復子は最善努力原則に基づき、ConcurrentModificationException をスローします。したがって、正確を期すためにこの例外に依存するプログラムを書くことは誤りです。「反復子のフェイルファストの動作はバグを検出するためにのみ使用すべきです」。
このクラスは、Java Collections Framework のメンバーです。
List
,
ArrayList
,
Vector
,
直列化された形式フィールドの概要 |
---|
クラス java.util.AbstractList から継承されたフィールド |
---|
modCount |
コンストラクタの概要 | |
---|---|
LinkedList()
空のリストを作成します。 |
|
LinkedList(Collection<? extends E> c)
指定されたコレクションの要素が含まれているリストを、要素がコレクションの反復子によって返される順序で作成します。 |
メソッドの概要 | ||
---|---|---|
boolean |
add(E e)
リストの最後に、指定された要素を追加します。 |
|
void |
add(int index,
E element)
リスト内の指定された位置に指定された要素を挿入します。 |
|
boolean |
addAll(Collection<? extends E> c)
指定されたコレクション内のすべての要素を、指定されたコレクションの反復子によって返される順序でリストの最後に追加します。 |
|
boolean |
addAll(int index,
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)
指定された要素がリスト内で最初に検出された位置のインデックスを返します。 |
|
int |
lastIndexOf(Object o)
指定された要素がリスト内で最後に検出された位置のインデックスを返します。 |
|
ListIterator<E> |
listIterator(int index)
リスト内の指定された位置で始まる、リスト内の要素を適切な順序で反復するリスト反復子を返します。 |
|
boolean |
offer(E e)
指定された要素をこのリストの末尾 (最後の要素) に追加します。 |
|
boolean |
offerFirst(E e)
リストの先頭に、指定された要素を挿入します。 |
|
boolean |
offerLast(E e)
リストの末尾に、指定された要素を挿入します。 |
|
E |
peek()
このリストの先頭 (最初の要素) を取得しますが、削除はしません。 |
|
E |
peekFirst()
リストの最初の要素を取得しますが、削除しません。 |
|
E |
peekLast()
リストの最後の要素を取得しますが、削除しません。 |
|
E |
poll()
このリストの先頭 (最初の要素) 取得し、削除します。 |
|
E |
pollFirst()
リストの最初の要素を取得および削除します。 |
|
E |
pollLast()
リストの最後の要素を取得および削除します。 |
|
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()
リスト内にある要素の数を返します。 |
|
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 |
インタフェース java.util.Deque から継承されたメソッド |
---|
iterator |
コンストラクタの詳細 |
---|
public LinkedList()
public LinkedList(Collection<? extends E> c)
c
- 要素がリストに配置されるコレクション
NullPointerException
- 指定されたコレクションが null である場合メソッドの詳細 |
---|
public E getFirst()
Deque<E>
内の getFirst
NoSuchElementException
- リストが空の場合public E getLast()
Deque<E>
内の getLast
NoSuchElementException
- リストが空の場合public E removeFirst()
Deque<E>
内の removeFirst
NoSuchElementException
- リストが空の場合public E removeLast()
Deque<E>
内の removeLast
NoSuchElementException
- リストが空の場合public void addFirst(E e)
Deque<E>
内の addFirst
e
- 追加する要素public void addLast(E e)
このメソッドは、add(E)
と同等です。
Deque<E>
内の addLast
e
- 追加する要素public boolean contains(Object o)
Collection<E>
内の contains
Deque<E>
内の contains
List<E>
内の contains
AbstractCollection<E>
内の contains
o
- リストにあるかどうかを調べる要素
public int size()
Collection<E>
内の size
Deque<E>
内の size
List<E>
内の size
AbstractCollection<E>
内の size
public boolean add(E e)
このメソッドは、addLast(E)
と同等です。
Collection<E>
内の add
Deque<E>
内の add
List<E>
内の add
Queue<E>
内の add
AbstractList<E>
内の add
e
- リストに追加される要素
Collection.add(E)
で指定されているとおり)public boolean remove(Object o)
Collection<E>
内の remove
Deque<E>
内の remove
List<E>
内の remove
AbstractCollection<E>
内の remove
o
- リストから削除される要素 (その要素が存在する場合)
public boolean addAll(Collection<? extends E> c)
Collection<E>
内の addAll
List<E>
内の addAll
AbstractCollection<E>
内の addAll
c
- 要素がリストに追加されるコレクション
NullPointerException
- 指定されたコレクションが null である場合AbstractCollection.add(Object)
public boolean addAll(int index, Collection<? extends E> c)
List<E>
内の addAll
AbstractSequentialList<E>
内の addAll
index
- 指定されたコレクションの最初の要素を挿入する位置のインデックスc
- 要素がリストに追加されるコレクション
IndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index > size())
NullPointerException
- 指定されたコレクションが null である場合public void clear()
Collection<E>
内の clear
List<E>
内の clear
AbstractList<E>
内の clear
public E get(int index)
List<E>
内の get
AbstractSequentialList<E>
内の get
index
- 返される要素のインデックス
IndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size())public E set(int index, E element)
List<E>
内の set
AbstractSequentialList<E>
内の set
index
- 置換される要素のインデックスelement
- 指定された位置に格納される要素
IndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size())public void add(int index, E element)
List<E>
内の add
AbstractSequentialList<E>
内の add
index
- 指定の要素が挿入される位置のインデックスelement
- 挿入される要素
IndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index > size())public E remove(int index)
List<E>
内の remove
AbstractSequentialList<E>
内の remove
index
- 削除される要素のインデックス
IndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index >= size())public int indexOf(Object o)
List<E>
内の indexOf
AbstractList<E>
内の indexOf
o
- 検索する要素
public int lastIndexOf(Object o)
List<E>
内の lastIndexOf
AbstractList<E>
内の lastIndexOf
o
- 検索する要素
public E peek()
Deque<E>
内の peek
Queue<E>
内の peek
public E element()
Deque<E>
内の element
Queue<E>
内の element
NoSuchElementException
- リストが空の場合public E poll()
Deque<E>
内の poll
Queue<E>
内の poll
public E remove()
Deque<E>
内の remove
Queue<E>
内の remove
NoSuchElementException
- リストが空の場合public boolean offer(E e)
Deque<E>
内の offer
Queue<E>
内の offer
e
- 追加する要素
Queue.offer(E)
で指定された場合と同様)public boolean offerFirst(E e)
Deque<E>
内の offerFirst
e
- 挿入される要素
Deque.offerFirst(E)
で指定されているとおり)public boolean offerLast(E e)
Deque<E>
内の offerLast
e
- 挿入される要素
Deque.offerLast(E)
で指定されているとおり)public E peekFirst()
Deque<E>
内の peekFirst
public E peekLast()
Deque<E>
内の peekLast
public E pollFirst()
Deque<E>
内の pollFirst
public E pollLast()
Deque<E>
内の pollLast
public void push(E e)
このメソッドは、addFirst(E)
と同等です。
Deque<E>
内の push
e
- プッシュする要素public E pop()
このメソッドは、removeFirst()
と同等です。
Deque<E>
内の pop
NoSuchElementException
- リストが空の場合public boolean removeFirstOccurrence(Object o)
Deque<E>
内の removeFirstOccurrence
o
- リストから削除される要素 (その要素が存在する場合)
public boolean removeLastOccurrence(Object o)
Deque<E>
内の removeLastOccurrence
o
- リストから削除される要素 (その要素が存在する場合)
public ListIterator<E> listIterator(int index)
リスト反復子は「フェイルファスト」です。反復子の作成後にリスト反復子自体の remove または add メソッド以外の方法でリストが構造的に変更されると、リスト反復子は ConcurrentModificationException をスローします。このように、並行して変更が行われると、反復子は、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。
List<E>
内の listIterator
AbstractSequentialList<E>
内の listIterator
index
- リスト反復子から (next 呼び出しによって) 返される最初の要素のインデックス
IndexOutOfBoundsException
- インデックスが範囲外の場合 (index < 0 || index > size())List.listIterator(int)
public Iterator<E> descendingIterator()
Deque
の記述:
Deque<E>
内の descendingIterator
public Object clone()
Object
内の clone
Cloneable
public Object[] toArray()
返される配列への参照をこのリストが維持しないという点で、この配列は安全です。(つまり、このメソッドは新しい配列を割り当てる)。このため、呼び出し側は、返された配列を自由に変更できます。
メソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。
Collection<E>
内の toArray
List<E>
内の toArray
AbstractCollection<E>
内の toArray
Arrays.asList(Object[])
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() と同一です。
Collection<E>
内の toArray
List<E>
内の toArray
AbstractCollection<E>
内の toArray
a
- 配列が十分な大きさを持つ場合は、リストの要素が格納される配列。そうでない場合は、要素を格納するために同じ実行時の型の新しい配列が割り当てられる
ArrayStoreException
- 指定された配列の実行時の型が、このリスト内のすべての要素の実行時の型のスーパータイプでない場合
NullPointerException
- 指定された配列が null である場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。