如何在字段级别对Java中的对象数组进行排序以进行级别比较?
在爪哇如何在字段级别对Java中的对象数组进行排序以进行级别比较?,java,string,sorting,compare,Java,String,Sorting,Compare,在爪哇 Class StudentProgress { String Name; String Grade; /* CTOR goes here */ } main class { main method() { StudentProgress arrayofObjects[100000]; } } 如果等级是D-、C-、B-、A-、A、B、C、D、A+、B+、C+、D+。我需要对这些对象进行排序
Class StudentProgress
{
String Name;
String Grade;
/* CTOR goes here */
}
main class
{
main method()
{
StudentProgress arrayofObjects[100000];
}
}
如果等级是D-、C-、B-、A-、A、B、C、D、A+、B+、C+、D+。我需要对这些对象进行排序如何才能有效地进行排序
提前感谢您正在寻找的课程是可比的、可比较的 本教程将指导您
祝你好运 最好的方法是让类实现。类似这样的方法会奏效:
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;
}
}
如果不希望类实现此接口,可以为排序调用提供一个独立的
比较器
,它必须是数组吗?这可能是一个列表
?这是家庭作业问题,对吗?
StudentProgress[] array = ...;
Arrays.sort(array);