你最好的办法是让你的班级执行Comparable
。像这样将工作:
public class StudentProgress implements Comparable<StudentProgress> {
String name;
String grade;
char baseGrade; // Just the letter
int gradeModifier; // -1 0 or +1 - done to make sorting easier
public StudentProgress(String name, String grade) {
this.name = name;
this.grade = grade;
// Extract the grade parts for use when comparing
baseGrade = grade.charAt(0);
gradeModifier = grade.length() == 1 ? 0 : Integer.parseInt(grade.charAt(1) + "1");
}
public int compareTo(StudentProgress o) {
return baseGrade == o.baseGrade ? gradeModifier - o.gradeModifier : baseGrade - o.baseGrade;
}
}
然后进行排序,您只需使用Arrays.sort()
方法:
StudentProgress[] array = ...;
Arrays.sort(array);
如果你不想让你的类来实现这个接口,可以提供一项独立单独Comparator
拨打电话
它必须是一个数组?可能它是一个'List'? – Bohemian 2012-07-11 01:40:12
这是作业题,我说得对吗? – doNotCheckMyBlog 2012-07-11 01:40:15