nal*_*thi 3 java sorting string compare
在Java中
Class StudentProgress
{
String Name;
String Grade;
/* CTOR goes here */
}
main class
{
main method()
{
StudentProgress arrayofObjects[100000];
}
}
Run Code Online (Sandbox Code Playgroud)
如果等级类似于D-,C-,B-,A-,A,B,C,D,A +,B +,C +,D +.我需要对这些对象进行排序,如何才能有效地做到这一点
你最好的方法是让你的班级实现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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后进行排序,您只需使用以下Arrays.sort()方法:
StudentProgress[] array = ...;
Arrays.sort(array);
Run Code Online (Sandbox Code Playgroud)
如果您不希望您的类实现此接口,则可Comparator以为sort调用提供独立服务