java - 如何在字段级别对 Java 中的对象数组进行排序以进行等级比较?

标签 java string sorting compare

在 Java 中,

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+。我需要对这些对象进行排序我怎样才能有效地做到这一点 提前致谢

最佳答案

你最好的方法是让你的类实现 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);

如果你不想让你的类实现这个接口(interface),你可以为排序调用提供一个独立的Comparator

关于java - 如何在字段级别对 Java 中的对象数组进行排序以进行等级比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11424369/

相关文章:

java - 从另一个 vector 中找出两个垂直 vector

java - Arrays.BinarySearch 没有保证吗?

java - 通过Java客户端API连接到google大查询

java - 访问 Nashorn 生成的字节码

java - 分割从 Json 响应收到的字符串

python - 尝试拆分字符串,但我不断收到此错误 : "Type Error: must be str or None, not list"

c++ - 为什么使用函数生成随机数会导致快速排序变慢?

python - 使用 groupby pandas 对日期进行排序

C# 字符串数组元素不更新

java - 根据 XMLGregorianCalendar 类型的键对 map 进行排序