TreeSet 排序问题
枫~ 2016-09-24 10:25:06 import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static StringBuilder RandomGenerator(int n){
StringBuilder sbuilder=new StringBuilder();
Random random=new Random();
for(int i=0;i<n;i++){
sbuilder.append((random.nextInt(1000)+1)+" "); //加空格的目的是为了后面的数字拆分
}
return sbuilder;
}
public static Set<String> Eliminate(StringBuilder sbuilder){
String[] string=new String(sbuilder).split(" ");// 以空格为界限,拆分StringBuilder内容,取出里面的数字
TreeSet<String> set=new TreeSet<String>();
for(String s:string){
set.add(s);
}
return set;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
Set<String> set=Eliminate(RandomGenerator(sc.nextInt()));
for(String s:set){
System.out.println(s.toString());
}
}
}
}
我的目的是随机生成n个1-1000以内的整数,n是从键盘输入,然后对这个10个数进行去重,并且排序,最后输出新的十个数。。。。。。。
我用了TreeSet,利用了Set的不重复性以及TreeSet的有序性,可是为什么输出结果为什么部分有序,部分无序。
附上一组测试结果:
输入:20
输出:134
16
265
282
34
373
39
416
421
464
574
587
65
673
713
719
729
752
85
90
红色标记的不是想要的结果