next(),使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。
(2) 使用next()获得序列中的下一个元素。
但是我还是不太明白
```SortedSet sortedset = new TreeSet(Arrays.asList(
"one two three four five six seven eight".split(" ")));
System.out.println(sortedset);
Object
low = sortedset.first(),
high = sortedset.last();
P.rintln("" + low);
P.rintln("" + high);
Iterator it = sortedset.iterator();
for(int i = 0; i < 7; i++){
if(i == 1) low = it.next();
if(i == 6) high = it.next();
else it.next();
}
P.rintln("" + low);
P.rintln("" + high);
P.rintln("" + sortedset);
[eight, five, four, one, seven, six, three, two]
eight
two
five
two
[eight, five, four, one, seven, six, three, two]
当 i == 1 ;当前元素是five,it.next(),后应该是four。这里不太理解了。感觉像返回当前元素一样
TreeSet的顺序不是插入的顺序,所以不一定。
你用的是SortedSet为就是有序的集合,所以会有排序的,你看看排序原则的TreeSet是怎么排序的,可能就是按字母顺序排的。
重写treeset的排序方法
for(int i = 0; i < 7; i++){
if(i == 1) low = it.next();
if(i == 6) high = it.next();
else it.next();
}
你代码里的i和你的next是没有关系的,你的i跟你的数据也没有直接关系,不是说i=1就是第二个数据。
if(i == 1) low = it.next();这段代码不是说你i=1的时候low就是第二个的数据的后面(four).
每next一次,数据就会往下一个。你的这段代码中,i=0时第一个使用next,这时数据为eight,i=1时第二次next,这时数据为five。
不知道你能不能理解。
Treeset数据是按照值排序的,当然和输入顺序不同