日期:2014-05-20  浏览次数:20715 次

为什么输出顺序与输入顺序不同呢??详见内容
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
public class Test {    
    public static void main(String[] args){
        Set<String> hashset = new HashSet<String>();
        Scanner input = new Scanner(System.in);
        for(int i=0;i<5;i++){          
            String  s = input.nextLine();
            hashset.add(s);
        }
        Iterator<String>it= hashset.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}
iterator

------解决方案--------------------
因为你用的是HashSet,HashSet出于对查询速度的优化使用了散列,所以你放进去的值顺序会变,如果不想变则你把HashSet改成linkedHashSet就OK了
------解决方案--------------------
HashSet是不能保证顺序的。要顺序可以用ArrayList或者LinkedHashSet