import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;classB{
String name;
String date;}publicclassTest{publicstaticvoidmain(String[] args){
Scanner in =newScanner(System.in);int n = in.nextInt();
B a []=newB[n];//声明一个对象数组for(int i =0; i < n; i++){
a[i]=newB();//分配内存等操作
a[i].name = in.next();
a[i].date = in.next();}//从小到大大排序
Arrays.sort(a,newComparator<B>(){//内部类@Overridepublicintcompare(B o1, B o2){return o1.date.compareTo(o2.date);}});for(int i =0; i < n; i++){//输出
System.out.print(a[i].name+" ");
System.out.println(a[i].date);}}}
输入
5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20
结果
James 1814/09/05
Tom 1814/09/06
Steve 1967/11/20
John 2001/05/12
Ann 2121/01/30
方法二:实现comparable接口
代码演示
import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;classAimplementsComparable<A>{//实现comparable接口,复写comparato方法
String name;
String date;@OverridepublicintcompareTo(A a){if(this.date.compareTo(a.date)==-1)return1;elsereturn-1;}}publicclassTest{publicstaticvoidmain(String[] args){
Scanner in =newScanner(System.in);int n = in.nextInt();
A a []=newA[n];for(int i =0; i < n; i++){
a[i]=newA();
a[i].name = in.next();
a[i].date = in.next();}
Arrays.sort(a);//从大到小排序for(int i =0; i < n; i++){
System.out.print(a[i].name+" ");
System.out.println(a[i].date);}}}
输入
5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20
结果
Ann 2121/01/30
John 2001/05/12
Steve 1967/11/20
Tom 1814/09/06
James 1814/09/05