通过TreeSet调用iterator.next()[Thinking in Java] [英] Calling iterator.next() through a TreeSet [example from Thinking In Java]
本文介绍了通过TreeSet调用iterator.next()[Thinking in Java]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
TreeSet< String> sortedSet = new TreeSet< String>();
Collections.addAll(sortedSet,
abcdefgh
。 split( ));
...
Iterator< String> it = sortedSet.iterator();
for ( int i = 0 ; i< = 6 ; i ++){
if (i == < span class =code-digit> 3 )low = it.next();
if (i == 6 )high = it.next();
else it.next();
}
打印(低);
打印(高);
令我感到困惑的是,虽然'low'打印出d,high打印出h,我认为应该是g。
如果我们在每次迭代中调用it.next(),第7次迭代不应该给出g??
解决方案
解决。对不起伙计。
这是因为
if;
if;
否则;
结构,当i == 3时,.next()被调用两次
Reading Containers in Depth chapter from the Thinking In Java book. Saw this example(modified from SortedMapDemo.java):
TreeSet<String> sortedSet = new TreeSet<String>();
Collections.addAll(sortedSet,
"a b c d e f g h"
.split(" "));
...
Iterator<String> it = sortedSet.iterator();
for(int i = 0; i <= 6; i++) {
if(i == 3) low = it.next();
if(i == 6) high = it.next();
else it.next();
}
print(low);
print(high);
What baffles me is that while 'low' prints out "d", 'high' prints out "h", for which I think should be "g" instead.
If we're calling it.next() in each iteration, shouldn't the 7th iteration gives "g"??
解决方案
Solved. Sorry guys.
It's because the
if;
if ;
else;
structure, when i ==3, .next() gets called twice
这篇关于通过TreeSet调用iterator.next()[Thinking in Java]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文