java 对象数组排序
废话不多说直接奉上代码先:
importjava.util.*; importjava.io.*; publicclassMain{ staticint[]dp=newint[1010]; publicstaticvoidmain(String[]args)throwsIOException{ Mouse[]mice=newMouse[1010]; FileReaderfr=newFileReader("in.txt");//读取文件 BufferedReaderread=newBufferedReader(fr); Stringstr=""; intn=1; while((str=read.readLine())!=null){ String[]s=str.split(""); mice[n]=newMouse();//对象实例化,很重要 mice[n].weight=Integer.parseInt(s[0]); mice[n].speed=Integer.parseInt(s[1]); n++; } System.out.println(n); Arrays.sort(mice,1,n);//sort(intstart,intend)包括start索引,不包括end索引 for(inti=1;i<n;i++){ System.out.println(mice[i].weight+""+mice[i].speed); } } } classMouseimplementsComparable{//实现Comparable接口 intweight; intspeed; publicintcompareTo(Objecto){//重写compareTo方法 Mousem=(Mouse)o; returnweight>m.weight?1:(weight==m.weight?0:-1); } }
另附上Arrays.sort用法:
1.数字排序int[]intArray=newint[]{4,1,3,-23};
Arrays.sort(intArray);
输出:[-23,1,3,4]
2.字符串排序,先大写后小写String[]strArray=newString[]{"z","a","C"};
Arrays.sort(strArray);
输出:[C,a,z]
3.严格按字母表顺序排序,也就是忽略大小写排序Case-insensitivesort
Arrays.sort(strArray,String.CASE_INSENSITIVE_ORDER);
输出:[a,C,z]
4.反向排序,Reverse-ordersort
Arrays.sort(strArray,Collections.reverseOrder());
输出:[z,a,C]
5.忽略大小写反向排序Case-insensitivereverse-ordersort
Arrays.sort(strArray,String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
输出:[z,C,a]
6、对象数组排序
要对一个对象数组排序,则要自己实现java.util.Comparator接口
例子:
Common_User[]userListTemp=newCommon_User[temp.size()];
Arrays.sort(userListTemp,newPinyinComparator());
PinyinComparator实现了Comparator接口,重写了compare方法,来告诉Arrays按照什么规则来比较两个对象的大小。
以上所述就是本文的全部内容了,希望大家能够喜欢。