gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:59:18 26 4
gpt4 key购买 nike

在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com