创建6个学生对象到集合,并按要求遍历输出 属性(姓名、年龄、语文、数学、英语) * 按从高到低输出控制台 * 总分一样按语文排 * 语文一样按数学排 数学一样按英语排 英语一样按年龄排 * 年龄一样按姓名首字母排 * 如果都一样,认为是同一学生,不存。
时间: 2024-10-09 11:08:44 浏览: 49
首先,我们需要创建一个表示学生的类,包含姓名、年龄、语文、数学、英语成绩属性。然后,我们可以创建一个学生列表,对这个列表进行排序并满足您的特定条件。
```java
import java.util.*;
class Student {
String name;
int age;
int chineseScore;
int mathScore;
int englishScore;
public Student(String name, int age, int chinese, int math, int english) {
this.name = name;
this.age = age;
this.chineseScore = chinese;
this.mathScore = math;
this.englishScore = english;
}
@Override
public int compareTo(Student other) {
// 总分比较
int totalComparison = this.totalScore() - other.totalScore();
if (totalComparison != 0) return totalComparison;
// 其他条件依次进行比较
// 按照语文、数学、英语、年龄、姓名首字母排序
return Integer.compare(this.chineseScore, other.chineseScore);
}
private int totalScore() {
return this.chineseScore + this.mathScore + this.englishScore;
}
}
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 20, 95, 85, 90));
students.add(new Student("李四", 22, 90, 80, 90));
students.add(new Student("王五", 19, 90, 85, 85));
students.add(new Student("赵六", 20, 90, 87, 88));
students.add(new Student("刘七", 21, 90, 88, 87));
students.add(new Student("陈八", 20, 90, 86, 89));
Collections.sort(students);
for (Student student : students) {
System.out.println("姓名: " + student.name + ", 年龄: " + student.age +
", 语文: " + student.chineseScore + ", 数学: " + student.mathScore +
", 英语: " + student.englishScore);
}
}
}
```
当你运行这个程序,它将按照您提供的排序规则打印出学生的详细信息。如果遇到总分相同的,会先按照语文分数排序;如果语文也相同,则按照数学分数,以此类推。
阅读全文