在Java中,给成绩排序可以通过多种方法实现,以下是几种常见的方法:
方法一:使用Comparator接口
import java.util.Arrays;import java.util.Comparator;public class Student {private String name;private int age;private double score;// 构造函数和其他方法省略public static void main(String[] args) {Student[] students = new Student;// 初始化学生数据Arrays.sort(students, new Comparator() { @Overridepublic int compare(Student s1, Student s2) {int result = Double.compare(s2.score, s1.score);if (result != 0) return result;result = Integer.compare(s1.age, s2.age);if (result != 0) return result;return s1.name.compareTo(s2.name);}});// 输出排序后的结果}}
方法二:使用Apache Commons Lang的CompareToBuilder
import org.apache.commons.lang3.builder.CompareToBuilder;// 在Student类中public int compareTo(Student other) {return new CompareToBuilder().append(this.score, other.score) // 成绩降序.append(this.age, other.age) // 年龄升序.append(this.name, other.name) // 姓名升序.toComparison();}
方法三:使用Java 8的lambda表达式
import java.util.Arrays;import java.util.Comparator;public class Student {private String name;private int age;private double score;// 构造函数和其他方法省略public static void main(String[] args) {Student[] students = new Student;// 初始化学生数据Arrays.sort(students, (s1, s2) -> {int scoreComparison = Double.compare(s2.score, s1.score);if (scoreComparison != 0) return scoreComparison;int ageComparison = Integer.compare(s1.age, s2.age);if (ageComparison != 0) return ageComparison;return s1.name.compareTo(s2.name);});// 输出排序后的结果}}
方法四:使用TreeSet集合
import java.util.TreeSet;public class Student implements Comparable{ private String name;private int age;private double score;// 实现Comparable接口的compareTo方法@Overridepublic int compareTo(Student other) {int scoreComparison = Double.compare(other.score, this.score);if (scoreComparison != 0) return scoreComparison;int ageComparison = Integer.compare(this.age, other.age);if (ageComparison != 0) return ageComparison;return this.name.compareTo(other.name);}public static void main(String[] args) {TreeSetstudents = new TreeSet<>(); // 添加学生数据for (Student student : students) {System.out.println(student.name + " " + student.score);}}}
以上是几种常见的排序方法,您可以根据具体需求选择合适的方法进行实现。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/82730.html