[英]Java, TreeSet. Can we iterate elements from not first element?
美好的一天。
我使用TreeSet
,例如TreeSet<Integer> t
。 而且我想从x和y之间的set t打印所有数字。
void print(Integer x,Integer y, TreeSet<Integer> t){
...
}
怎么做? 当然,我可以得到t.iterator()
,并迭代set中的所有数字并检查x是否t.iterator()
y。 时间复杂度是y步。 但是如果yx小。 最好获得t.higher(),然后迭代set中的元素,直到小于y。 该解决方案可以用C ++实现。 它的时间复杂度是log (t.size())+(yx)
。
用Java怎么做?
您可以使用SortedSet
接口( TreeSet
实现)。 例如:
SortedSet<Integer> set = new TreeSet<Integer>();
for (int i = 1; i <= 5; ++i) {
set.add(i);
}
int from = 2;
int to = 4;
for (int x : set.subSet(from, to+1)) { // Note that the higher bound is exclusive.
System.out.println(x);
}
输出:
2
3
4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.