Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在字段级别对Java中的对象数组进行排序以进行级别比较?_Java_String_Sorting_Compare - Fatal编程技术网

如何在字段级别对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);