对于基本数据类型的的排序直接调用Arrays中的sort方法进行排序即可。
但是对于引用数据类型进行sort排序,需要用到comparable或者comparator接口。
comparable可以认为是一个内部比较器,实现comparable的对象数组需要
重写一下comparable中的compareTo方法。
public class GeRenInfo implements Comparable<GeRenInfo>{
private Integer sxny;
@Override
public String toString() {
return "sxny=" + sxny ;
}
public int getSxny() {
return sxny;
}
public void setSxny(int sxny) {
this.sxny = sxny;
}
@Override
public int compareTo(GeRenInfo o) {
int sxny01=this.sxny;
int sxny02=o.sxny;
int i=0;
if(sxny01> sxny02){
i=1;
}else if(sxny01<sxny02){
i=-1;
}
return i;
}
}
comparator可以认为是一个外部比较器,需要定义一个继承comparator
接口的类,并且重写 一下方法compare,在是用sort排序时,调用一下即可。
import java.lang.reflect.Array;
import java.util.*;
public class Main {
public static void main(String[] args) {
Long[] a=new Long[100010];
Arrays.fill(a, (long)0);
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
for(int i=0;i<n;i++)
{
a[i]=scan.nextLong();
}
Comparator cmp=new CMP();
Arrays.sort(a,0,n,cmp);
for(int i=0;i<n;i++)
System.out.print(a[i]+" ");
}
}
class CMP implements Comparator<Object>
{
public int compare(Object o1, Object o2) {
Long a=(long)o1;
Long b=(Long)o2;
if(a<b)
return -1;
else
return 1;
}
}