java从NavigableSet获取特定索引处的元素
我有一个NavigableSet
,我想得到它的中间对象
因为它是一个NavigableSet
,我知道它是被排序的,因此我知道它的中值要么是中间元素,要么是两个中间元素的算术中间
因此,我想访问set.size() / 2
处的元素,但是NavigableSet
接口不允许我访问
有没有一种简单的方法可以获得特定的元素而不必手动遍历集合
你可以在下面搜索框中键入要查询的问题!
我有一个NavigableSet
,我想得到它的中间对象
因为它是一个NavigableSet
,我知道它是被排序的,因此我知道它的中值要么是中间元素,要么是两个中间元素的算术中间
因此,我想访问set.size() / 2
处的元素,但是NavigableSet
接口不允许我访问
有没有一种简单的方法可以获得特定的元素而不必手动遍历集合
# 1 楼答案
字符串按字母顺序排列,请看以下小示例:
编辑:现在它真的做到了你想要的
这是输出:
我没有用更大的数据集做任何基准测试,但我想它应该表现得相当不错。
higher()
方法应该直接指向树中的下一个元素# 2 楼答案
除了在集合“索引”中迭代多次之外,我找不到其他方法。但是,由于我们知道集合的大小,我们可以通过使用升序和降序迭代将其速度提高到至少一半:
# 3 楼答案
“是”集不允许您从特定索引获取元素。但是我认为如果你把它转换成一个数组,那么你就能够实现你所需要的。我尝试了以下示例代码,看看是否有帮助: