Apo*_*tal 5 java collections performance iterator
我在 Java 中有一个排序集(例如 TreeSet)。我想要一个从树的特定元素开始的迭代器,并且能够转到下一个或上一个元素(按排序顺序)。
有没有关于如何在不实现我自己的数据结构的情况下做到这一点的想法?
谢谢
编辑:
我忘了提到我想用一种天真的方式(如果有的话)来做,因为我关心性能。如果我可以访问树的实现,则需要 O(1) 时间来做到这一点。我想要类似的东西。
也可以随意建议支持这一点的 Java 中排序树的其他(第 3 方)实现。
要从x的元素继续前进SortedSet s,请使用s.tailSet(x).iterator().
x从useNavigableSet s元素向后追溯s.descendingSet().tailSet(x).iterator()。
tailSet()并descendingSet()创建原始集的视图s。因此,它们的实现无法创建原始集合的副本(否则,如果查看的集合发生更改,副本将变得过时),因此将具有 O(1) 性能。
ATreeSet是 a NavigableSet,因此是 a SortedSet。