【发布时间】:2014-09-16 20:57:52
【问题描述】:
我需要将 sourceList 中的对象添加到集合中,当我们将对象添加到集合中时,该集合对集合进行排序。我正在考虑使用TreeSet。
TreeSet bookSet
基于某些条件,我需要获取bookSet 的子集。子集将是前 N 个元素。 N 的值只有在整个bookSet 是从另一个sourceList 准备之后才知道的。
无论如何我可以使用索引 N 获取 bookSet 的子集,类似于 arrayList.subList(0,N)。
我可以使用headSet,但我需要知道第 N+1 个元素。
【问题讨论】:
-
使用
headSet(),然后在其上调用iterator()并遍历接下来的N个元素。 -
您需要遍历集合并获取前 N 个元素。那将是线性时间,或者如果您仍然对 sourceList 有句柄,则从 sourceList 中获取 N+1 个元素,然后调用
headSet。 -
sourceList 中的元素是随机排序的。
标签: java collections sortedset