Guava的AbstractLinkedIterator
课程
似乎存在允许在LinkedHashMap
之类的中间重新启动迭代。但我没有在番石榴中找到任何可以归还此类的课程。事实上,是否有办法通过其中一个的子类迭代LinkedHashMap
或LinkedHashMultimap
?
答案 0 :(得分:3)
AbstractLinkedIterator
,正如其Javadoc所述:
为序列提供
Iterator
接口的骨架实现,其下一个元素总是可以从前一个元素派生。
这就是它的全部。它对LinkedHashMap
中当前链接的条目没有任何了解。如果您可以访问链接结构的节点并且使其成为Iterator<Node>
,那么您当然可以计算前一个节点的下一个节点,但LinkedHashMap
不会公开其链接的条目。
答案 1 :(得分:2)
This link表示目前尚无用处(02/05/2011),我当然也找不到任何用途。查看源代码,这是一个非常骨架实现,它只是调用它的继承者来询问它们下一个可能基于当前元素的内容,但你必须自己实现它的内容(这可能确实给你的迭代器可以从某个有序集/列表中的任何点开始)。你想做什么?
答案 2 :(得分:0)
AbstractLinkedIterator
对于创建代表重复的Iterator
和Iterable
非常有用 - 例如具有素数等的潜在无限Iterable
。
如果您需要重新启动迭代,只需使用Iterable
创建新的Iterator
。