jp.hishidama.util
クラス WeakList<E>

java.lang.Object
  上位を拡張 java.util.AbstractCollection<E>
      上位を拡張 java.util.AbstractList<E>
          上位を拡張 java.util.AbstractSequentialList<E>
              上位を拡張 jp.hishidama.util.WeakList<E>
型パラメータ:
E - このリストが保持する値の型
すべての実装されたインタフェース:
Iterable<E>, Collection<E>, List<E>, Queue<E>

public class WeakList<E>
extends AbstractSequentialList<E>
implements Queue<E>

弱参照リスト.

オブジェクトの弱参照を保持し、そのオブジェクトがGCにより破棄された場合にリスト内から削除する。

基本的に通常のリストと同様の使い方が出来る。ただし、nullを入れる事は出来ない。
値取得系のメソッドでは、タイミングによってはnullが返ることがある(GCによる破棄済みを意味する)。

当クラスの基本構造はリンクリストであり、インデックスを使って操作するメソッドは基本的に実装していない。
当クラスはMTセーフではない。

使用例

導入されたバージョン:
2008.07.14
作成者:
ひしだま
関連項目:
WeakHashMap, LinkedList

コンストラクタの概要
WeakList()
           
 
メソッドの概要
 boolean add(E e)
          リストの最後に、指定された要素を追加します。
 void addFirst(E e)
          リストの先頭に、指定された要素を挿入します。
 void addLast(E e)
          リストの最後に、指定された要素を追加します。
 void clear()
          リストからすべての要素を削除します。
 boolean contains(Object o)
          リストに指定された要素がある場合に true を返します。
 E element()
          このリストの先頭 (最初の要素) を取得します。
 E getFirst()
          リスト内の最初の要素を返します。
 E getLast()
          リスト内の最後の要素を返します。
 Iterator<E> iterator()
          このリスト内の要素を適切な順序で繰り返し処理する反復子を返します。
 ListIterator<E> listIterator(int index)
          このリスト内の要素を適切な順序で繰り返し処理するリスト反復子を返します。
 boolean offer(E e)
          指定された要素をこのリストの末尾 (最後の要素) に追加します。
 E peek()
          このリストの先頭 (最初の要素) を取得します。
 E poll()
          このリストの先頭 (最初の要素) 取得し、削除します。
 E remove()
          このリストの先頭 (最初の要素) 取得し、削除します。
 boolean remove(Object o)
          指定された要素がこのリストにあれば、その最初のものをリストから削除します。
 E removeFirst()
          リストから最初の要素を削除して返します。
 E removeLast()
          リストから最後の要素を削除して返します。
 int size()
          リスト内にある要素の数を返します。
 
クラス java.util.AbstractSequentialList から継承されたメソッド
add, addAll, get, remove, set
 
クラス java.util.AbstractList から継承されたメソッド
equals, hashCode, indexOf, lastIndexOf, listIterator, subList
 
クラス java.util.AbstractCollection から継承されたメソッド
addAll, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString
 
クラス java.lang.Object から継承されたメソッド
getClass, notify, notifyAll, wait, wait, wait
 
インタフェース java.util.Collection から継承されたメソッド
addAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray
 
インタフェース java.util.List から継承されたメソッド
addAll, containsAll, isEmpty, removeAll, retainAll, toArray, toArray
 

コンストラクタの詳細

WeakList

public WeakList()
メソッドの詳細

addFirst

public void addFirst(E e)
リストの先頭に、指定された要素を挿入します。

パラメータ:
e - 追加する要素
例外:
IllegalArgumentException - 引数がnullのとき

addLast

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

パラメータ:
e - 追加する要素
例外:
IllegalArgumentException - 引数がnullのとき

getFirst

public E getFirst()
リスト内の最初の要素を返します。

戻り値:
リスト内の最初の要素(GCとのタイミングによってはnullの場合もある)
例外:
NoSuchElementException - リストが空の場合

getLast

public E getLast()
リスト内の最後の要素を返します。

戻り値:
リスト内の最後の要素(GCとのタイミングによってはnullの場合もある)
例外:
NoSuchElementException - リストが空の場合

removeFirst

public E removeFirst()
リストから最初の要素を削除して返します。

戻り値:
リストからの最初の要素(GCとのタイミングによってはnullの場合もある)
例外:
NoSuchElementException - リストが空の場合

removeLast

public E removeLast()
リストから最後の要素を削除して返します。

戻り値:
リストからの最後の要素(GCとのタイミングによってはnullの場合もある)
例外:
NoSuchElementException - リストが空の場合

contains

public boolean contains(Object o)
リストに指定された要素がある場合に true を返します。

定義:
インタフェース Collection<E> 内の contains
定義:
インタフェース List<E> 内の contains
オーバーライド:
クラス AbstractCollection<E> 内の contains
パラメータ:
o - リストにあるかどうかを調べる要素

size

public int size()
リスト内にある要素の数を返します。

定義:
インタフェース Collection<E> 内の size
定義:
インタフェース List<E> 内の size
定義:
クラス AbstractCollection<E> 内の size
戻り値:
リスト内の要素数

add

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

定義:
インタフェース Collection<E> 内の add
定義:
インタフェース List<E> 内の add
定義:
インタフェース Queue<E> 内の add
オーバーライド:
クラス AbstractList<E> 内の add
パラメータ:
e - リストに追加される要素
戻り値:
常にtrue
例外:
IllegalArgumentException - 引数がnullの場合

remove

public boolean remove(Object o)
指定された要素がこのリストにあれば、その最初のものをリストから削除します。

定義:
インタフェース Collection<E> 内の remove
定義:
インタフェース List<E> 内の remove
オーバーライド:
クラス AbstractCollection<E> 内の remove
パラメータ:
o - リストから削除される要素
戻り値:
削除された場合はtrue

clear

public void clear()
リストからすべての要素を削除します。

定義:
インタフェース Collection<E> 内の clear
定義:
インタフェース List<E> 内の clear
オーバーライド:
クラス AbstractList<E> 内の clear

iterator

public Iterator<E> iterator()
このリスト内の要素を適切な順序で繰り返し処理する反復子を返します。

定義:
インタフェース Iterable<E> 内の iterator
定義:
インタフェース Collection<E> 内の iterator
定義:
インタフェース List<E> 内の iterator
オーバーライド:
クラス AbstractSequentialList<E> 内の iterator
戻り値:
反復子

listIterator

public ListIterator<E> listIterator(int index)
このリスト内の要素を適切な順序で繰り返し処理するリスト反復子を返します。

定義:
インタフェース List<E> 内の listIterator
定義:
クラス AbstractSequentialList<E> 内の listIterator
戻り値:
リスト反復子
例外:
IndexOutOfBoundsException - インデックスが範囲外の場合

peek

public E peek()
このリストの先頭 (最初の要素) を取得します。

定義:
インタフェース Queue<E> 内の peek
戻り値:
リスト内の最初の要素(GCとのタイミングによってはnullの場合もある)
リストが空の場合はnull

element

public E element()
このリストの先頭 (最初の要素) を取得します。

定義:
インタフェース Queue<E> 内の element
戻り値:
リスト内の最初の要素(GCとのタイミングによってはnullの場合もある)
例外:
NoSuchElementException - リストが空の場合
関連項目:
getFirst()

poll

public E poll()
このリストの先頭 (最初の要素) 取得し、削除します。

定義:
インタフェース Queue<E> 内の poll
戻り値:
リスト内の最初の要素(GCとのタイミングによってはnullの場合もある)
リストが空の場合はnull

remove

public E remove()
このリストの先頭 (最初の要素) 取得し、削除します。

定義:
インタフェース Queue<E> 内の remove
戻り値:
リスト内の最初の要素(GCとのタイミングによってはnullの場合もある)
例外:
NoSuchElementException - リストが空の場合
関連項目:
removeFirst()

offer

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

定義:
インタフェース Queue<E> 内の offer
パラメータ:
e - 追加する要素
例外:
IllegalArgumentException - 引数がnullの場合
関連項目:
add(Object)