java编程思想中关于迭代器的一段
SortedSet sortedSet=new TreeSet(Arrays.asList("one two three four five six seven eight".split(" ")));
Iterator 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();
}
System.out.println(sortedSet);
System.out.println(low);
System.out.println(high)
运行结果为:
[eight,five,four,one,seven,six,three,two]
one
two
我的问题是low和high的值怎么得到的,为什么他们之间相差三个对象?
有哪位大哥能帮我解释一下,小弟感激不尽
SortedSet sortedSet=new TreeSet(Arrays.asList("one two three four five six seven eight".split(" ")));
Iterator 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();
}
System.out.println(sortedSet);
System.out.println(low);
System.out.println(high)
运行结果为:
[eight,five,four,one,seven,six,three,two]
one
two
我的问题是low和high的值怎么得到的,为什么他们之间相差三个对象?
有哪位大哥能帮我解释一下,小弟感激不尽
解决方案 »
- 关于Properties键值对存储小程序
- 如何保证对对碰布局之后有解
- 请问如何通过socket向C++的程序传送一个结构体
- java中如何捕获窗口外的鼠标和键盘事件
- 請教一下這段為何無法跳出回圈呢??
- 运行APPLET报nullpointerexception的错
- jsp的文件上传-------access
- jdbc 连接sql server2000 错误<Error establishing socket>
- 马上给分:sun的j2ee服务器版sdk能在win2000 professional 下运行吗?
- 开发工具
- qq的聊天场景设置的功能是如何实现的?
- 请问在swing中怎样设计可自由伸缩的组件.
if(i==6) high=it.next();所以 low 和 high差3个下标
因为你使用SortSet,所以会根据拟的数据内容进行排序
sortedSet 的内容是:eight,five,four,one,seven,six,three,two
next()就是返回当前游标值得数据,同时对游标加一,迭代器在创建时游标为0
所以i是3时,游标为4,数据为one, i是6时,游标为7,数据为two
i是6时,游标为7,数据为two????是为two吗? 我怎么觉得是three
除非有别的高深解释
下标差3 而实际内容是差4 分明不对应
if(i==6) high=it.next();
else it.next(); // 这里下面的就是three
SortedSet sortedSet=new TreeSet(Arrays.asList("one two three four five six seven eight".split(" ")));
Iterator it=sortedSet.iterator();
for(int i=0;i<=6;i++){
if(i==3) low=it.next();
else if(i==6) high=it.next();
else it.next();
}
System.out.println(sortedSet);
System.out.println(low);
System.out.println(high)