java结构体排序的两种办法
Comparator和Comparable在排序中的应用
当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。
一、Comparator
强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。
接口方法:
import java.util.*;import java.util.Arrays;class he implements Comparable<he>{int x,y; /*因为上面指定了类型<he>,所以此处可以直接(he A) *否则要写成(Object A),再强制转换成he类型:((he)A).x */public int compareTo(he a){ if(this.x-a.x!=0) return this.x-a.x;else return this.y-a.y;}}class hee{ public static void main(String args[]){Scanner in=new Scanner (System.in);int n,i;n=in.nextInt();he d[]=new he[10];for(i=0;i<n;i++){d[i]=new he();d[i].x=in.nextInt();d[i].y=in.nextInt();}Arrays.sort(d,0,n); //排n个数,Arrays.sort(d)则默认排全部for(i=0;i<n;i++)System.out.println(d[i].x+" "+d[i].y);}}