用了HDU 1862的excel排序做例子,但是感觉这道题内存限制有问题,一直ML,先不管,贴上代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import java.util.Vector;
public class Main {
static class Student {
String id;
String name;
int score;
public Student(String id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
}
static class cmp1 implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
return o1.id.compareTo(o2.id);
}
}
static class cmp2 implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
if (o1.name.equals(o2.name)) {
return o1.id.compareTo(o2.id);
}
return o1.name.compareTo(o2.name);
}
}
static class cmp3 implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
if (o1.score == o2.score) {
return o1.id.compareTo(o2.id);
}
return o1.score - o2.score;
}
}
public static void main(String[] args) {
int n, m;
Scanner sc = new Scanner(System.in);
int ncase = 0;
while (true) {
n = sc.nextInt();
m = sc.nextInt();
if (n == 0 || m == 0)
break;
ArrayList<Student> stu = new ArrayList<>();
for (int i = 0; i < n; i++) {
stu.add(new Student(sc.next(), sc.next(), sc.nextInt()));
}
switch(m){
case 1:
stu.sort(new cmp1());
break;
case 2:
stu.sort(new cmp2());
break;
case 3:
stu.sort(new cmp3());
break;
}
System.out.println("Case " + (++ncase) + ":");
for(int i = 0;i < n;i++){
System.out.println(stu.get(i).id + " "
+ stu.get(i).name + " "
+ stu.get(i).score);
}
}
}
}