创建6个学生对象到集合,并按要求遍历输出 * 属性(姓名、年龄、语文、数学、英语) * 按从高到低输出控制台 * 总分一样按语文排 * 语文一样按数学排 * 数学一样按英语排 * 英语一样按年龄排 * 年龄一样按姓名首字母排 * 如果都一样,认为是同一学生,不存。
时间: 2024-10-09 10:08:47 浏览: 55
为了创建六个学生对象并按照给定的要求操作,我们可以首先定义一个名为`Student`的类,包含属性如姓名、年龄和各科成绩。然后,我们创建一个列表存储学生对象,按照指定条件遍历并排序。
```java
import java.util.*;
class Student {
String name;
int age;
int chinese;
int math;
int english;
// 构造函数
public Student(String name, int age, int chinese, int math, int english) {
this.name = name;
this.age = age;
this.chinese = chinese;
this.math = math;
this.english = english;
}
@Override
public int compareTo(Student other) {
int totalScore = chinese + math + english;
if (totalScore != other.totalScore) {
return Integer.compare(totalScore, other.totalScore);
}
// 按语文降序
if (chinese != other.chinese) {
return Integer.compare(chinese, other.chinese);
}
// ...依次按数学、英语、年龄比较
if (math != other.math) {
return Integer.compare(math, other.math);
}
if (english != other.english) {
return Integer.compare(english, other.english);
}
if (age != other.age) {
return Integer.compare(age, other.age);
}
// 最后按姓名首字母排序
return name.compareTo(other.name);
}
}
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 18, 90, 95, 88));
students.add(new Student("李四", 17, 88, 94, 90));
students.add(new Student("王五", 18, 92, 93, 89));
students.add(new Student("赵六", 17, 90, 91, 91));
students.add(new Student("刘七", 18, 88, 90, 87));
students.add(new Student("陈八", 17, 91, 92, 89));
Collections.sort(students);
for (Student student : students) {
System.out.println("姓名: " + student.name + ", 年龄: " + student.age +
", 语文: " + student.chinese + ", 数学: " + student.math +
", 英语: " + student.english);
}
}
}
```
当你运行这个程序时,它将按照要求的顺序打印出学生信息。如果遇到总分、各科分数或年龄相同的同学,它们会继续按照姓名首字母排序。
阅读全文