import java.io.*;import java.util.*;import java.math.*;import java.text.*;import java.util.Comparator;public class Main{ final static int maxn=100; public static class student{ String name; int score; student(){}; student(String nn,int ss){ name=nn; score=ss; } String getname(){ return name; } int getscore(){ return score; } void output(){ System.out.println(name+" "+score); } }; public static class MyComparator implements Comparator{ public int compare(Object obj1, Object obj2) { student x=(student)obj1; student y=(student)obj2; if(x.getscore()!=y.getscore()) return x.getscore()<y.getscore()?1:-1; return x.getname().compareTo(y.getname())>0?1:-1; } }; public static student p[]=new student[maxn]; public static Integer a[]=new Integer[maxn]; public static void main(String args[]){ Scanner in=new Scanner(System.in); ///排序1:数组排序 //示例数据 //5 //4 1 3 6 9 int n=in.nextInt(); for(int i=0;i<n;i++)a[i]=in.nextInt(); //第1个参数传入的是数组的首地址例如a //接下来传入的是排序的范围 x,y,表示将区间a[x]到a[y-1]段排序 //默认是从小到大排 Arrays.sort(a,0,n); for(int i=0;i<n;i++)System.out.print(a[i]+" "); System.out.println(); //这是构造方法类实现排序准则的形式 Arrays.sort(a,0,n,new Comparator<Integer>(){ public int compare(Integer x,Integer y){ return x<y?1:-1;//表示从大到小 } }); for(int i=0;i<n;i++)System.out.print(a[i]+" "); System.out.println(); //排序2:类排序 //示例数据 //5 //xiaoming 100 //dong 100 //haha 75 //hehe 80 //xiaowang 90 int m=in.nextInt(); for(int i=0;i<m;i++){ String name=in.next(); int score=in.nextInt(); p[i]=new student(name,score); } //示例:首先按成绩从高到底,若相同,按名字字典序 Arrays.sort(p,0,m,new Comparator<student>(){ public int compare(student x,student y){ if(x.getscore()!=y.getscore()) return x.getscore()<y.getscore()?1:-1; return x.getname().compareTo(y.getname())>0?1:-1; } }); //这是外部定义比较器类的使用方法 Arrays.sort(p,0,m,new MyComparator()); for(int i=0;i<m;i++)p[i].output(); }}