学生成绩排序java_java基础知识

学生成绩排序java_java基础知识在 Java 中 给成绩排序可以通过多种方法实现 以下是几种常见的方法 方法一 使用 Comparator 接口 javaimport java util Arrays import java util Comparator public class Student private String name private int age private double score

在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 
  
    
  
    () { 
   @Override public 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方法 @Override public 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) { TreeSet 
  
    
  
    students = new TreeSet<>(); 
   // 添加学生数据 for (Student student : students) { System.out.println(student.name + " " + student.score); } } } 

以上是几种常见的排序方法,您可以根据具体需求选择合适的方法进行实现。

编程小号
上一篇 2025-05-17 23:42
下一篇 2025-05-17 23:36

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/82730.html