我有TreeSet<Integer> set = new TreeSet<>();
我用一些值填充集合:
set.add(i); // i=1,5,7,44,9,7
由于它是一个有序的Set,我应该能够拥有如下的集合。
1 - 5 - 7 - 9 - 44
现在我想知道9
在集合中的位置,在这种情况下为3
。
1)我可以进行线性搜索,迭代集合,增加一个值,当前元素不等于我搜索的元素,
2)我可以进行Binery递归搜索,确定长度,将集合分成两部分,获取第一个子集的最后一个元素,然后确定,我在哪个子集中进行搜索,依此类推。
是否有更便宜的方法来搜索集合中某个值的索引?