有没有办法将 LinkedList 类的对象转换为循环链表。
或者是否有任何预定义的类,如 java.util 中的 CircularLinkedList 类似这样的东西(类似http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedList.html的东西)
任何帮助将非常感激....
提前致谢 :-)
有没有办法将 LinkedList 类的对象转换为循环链表。
或者是否有任何预定义的类,如 java.util 中的 CircularLinkedList 类似这样的东西(类似http://docs.oracle.com/javase/1.4.2/docs/api/java/util/LinkedList.html的东西)
任何帮助将非常感激....
提前致谢 :-)
不,LinkedList 的封装方式使其无法将其尾部连接到头部。我不认为任何默认集合都支持这一点,因为那样它就不会再履行Iterable的合同了,这表明迭代器必须在某个时候到达终点。
当您需要这样的数据结构时,您必须自己实现它。
看看 Guava 的 Iterables.cycle 方法。
public static <T> Iterable<T> cycle(Iterable<T> iterable)
返回一个迭代器,它的迭代器在迭代器的元素上无限循环。
如果支持,该迭代器支持 remove() iterable.iterator()
。调用 remove() 后,后续循环将忽略已删除的元素,该元素不再可迭代。迭代器的hasNext()
方法返回 true,直到 iterable 为空。