- 68 名前:67 mailto:sage [2010/05/03(月) 16:29:46 ]
- 一応、自己解決したかも知れない。
List<String> ll = new LinkedList<String>(); ll.add("A"); ll.add("B"); ll.add("C"); ListIterator<String> it = new ListIterator<String>(); String result; it.next(); result = it.next(); it.previous(); return result; .//これでカーソルをAとBの間に移動しつつBを取得できる。 next()二回実行してprevious()を実行するというやり方。 逆方向の場合はprevious()を二回実行してからnext()を実行。 問題はListの末端に来たときの処理も作っておかないといけないのが難点。 if(lt.hasNext())とかif(it.hasPrevious())とかでまいどまいどチェックしないといけない。 本当は、末端に来てnext()したら先頭に戻る永久ループ型のIteratorが欲しいのだが…。 時計の針のように12時になったら0時からスタートする、というIterator。 Apache Common Collectionsあたりでも探すしかないだろうか…。しかしあのCollection Frameworkはまだ Genericsに完全対応していないし…。
|

|