2

LinkedList クラスのオブジェクトを循環リンク リストに変換する方法はありますか。

または、java.util にCircularLinkedListのような定義済みのクラスがありますか?

どんな助けでも本当に感謝します....

前もって感謝します :-)

4

2 に答える 2

3

いいえ、LinkedList は、末尾を先頭に接続できないようにカプセル化されています。デフォルトのコレクションのいずれかがそれをサポートしているとは思いません。なぜなら、イテレータがいつか最後に到達しなければならないというIterableの契約をもう満たしていないからです。

そのようなデータ構造が必要な場合は、自分で実装する必要があります。

于 2012-12-25T20:12:41.110 に答える
1

Guava の Iterables.cycle メソッドを見てください。

public static <T> Iterable<T> cycle(Iterable<T> iterable)

イテレータが iterable の要素を無期限に循環する iterable を返します。

そのイテレータは remove() if iterable.iterator()does をサポートします。remove() が呼び出された後、後続のサイクルは削除された要素を省略します。これはもはや iterable ではありません。iterator のhasNext()メソッドは、 iterable が空になるまで true を返します。

ドキュメントを参照してください: http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Iterables.html#cycle%28java.lang.Iterable%29

于 2012-12-26T07:36:20.997 に答える