import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;public class CollectionTest1 {
public static void main(String[] args) {
LinkedList list=new LinkedList();
list.add(new Long(-1));
list.add(new Long(9));
list.add(new Long(8));
list.add(new Long(-19));
Comparator c=Collections.reverseOrder();
Collections.sort(list, c);
Iterator itr=list.iterator();

while(itr.hasNext()){
System.out.println(itr.next());
}
Collections.shuffle(list);
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
只打印一次结果,但是我期待的结果是两次,没报错和异常,求解答

解决方案 »

  1.   


    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.LinkedList;public class CollectionTest1 {
    public static void main(String[] args) {
    LinkedList list=new LinkedList();
    list.add(new Long(-1));
    list.add(new Long(9));
    list.add(new Long(8));
    list.add(new Long(-19));
    Comparator c=Collections.reverseOrder();
    Collections.sort(list, c);
    Iterator itr=list.iterator();while(itr.hasNext()){
    System.out.println(itr.next());
    } //此时已经遍历完所有的list,迭代器的已经指向最后一个。如果还用此迭代器,将取不到数据
    Collections.shuffle(list);
    itr=list.iterator();   //需要再取得它的迭代器
    while(itr.hasNext()){
    System.out.println(itr.next());
    }
    }
    }