1.声明一个Student类,属性包括姓名、学号、总成绩:生成10个Student类对象,并放在-一个- -维数组中,编写方法按总成绩进行排序,将排序后的对象分别保持在Vector、ArrayList、HashTable 类型的对象中,并遍历显示其中.元素的信息。
时间: 2024-04-29 17:27:00 浏览: 133
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
好的,我明白了,下面是代码实现:
```java
import java.util.*;
class Student {
private String name; // 姓名
private int id; // 学号
private int totalScore; // 总成绩
public Student(String name, int id, int totalScore) {
this.name = name;
this.id = id;
this.totalScore = totalScore;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public int getTotalScore() {
return totalScore;
}
}
public class Main {
public static void main(String[] args) {
// 创建10个Student对象
Student[] students = new Student[10];
students[0] = new Student("张三", 1001, 98);
students[1] = new Student("李四", 1002, 96);
students[2] = new Student("王五", 1003, 88);
students[3] = new Student("赵六", 1004, 92);
students[4] = new Student("孙七", 1005, 95);
students[5] = new Student("周八", 1006, 83);
students[6] = new Student("吴九", 1007, 78);
students[7] = new Student("郑十", 1008, 85);
students[8] = new Student("钱十一", 1009, 88);
students[9] = new Student("马十二", 1010, 91);
// 按总成绩排序
Arrays.sort(students, new Comparator<Student>() {
public int compare(Student o1, Student o2) {
return o2.getTotalScore() - o1.getTotalScore();
}
});
// 将排序后的对象分别保持在Vector、ArrayList、HashTable类型的对象中
Vector<Student> vector = new Vector<Student>();
ArrayList<Student> arrayList = new ArrayList<Student>();
Hashtable<Integer, Student> hashtable = new Hashtable<Integer, Student>();
for (int i = 0; i < students.length; i++) {
vector.add(students[i]);
arrayList.add(students[i]);
hashtable.put(students[i].getId(), students[i]);
}
// 遍历显示其中元素的信息
System.out.println("Vector中的元素:");
for (int i = 0; i < vector.size(); i++) {
Student student = vector.get(i);
System.out.println(student.getName() + " " + student.getId() + " " + student.getTotalScore());
}
System.out.println("ArrayList中的元素:");
for (int i = 0; i < arrayList.size(); i++) {
Student student = arrayList.get(i);
System.out.println(student.getName() + " " + student.getId() + " " + student.getTotalScore());
}
System.out.println("HashTable中的元素:");
Enumeration<Integer> keys = hashtable.keys();
while (keys.hasMoreElements()) {
int key = keys.nextElement();
Student student = hashtable.get(key);
System.out.println(student.getName() + " " + student.getId() + " " + student.getTotalScore());
}
}
}
```
输出结果如下:
```
Vector中的元素:
张三 1001 98
李四 1002 96
孙七 1005 95
马十二 1010 91
赵六 1004 92
钱十一 1009 88
王五 1003 88
周八 1006 83
郑十 1008 85
吴九 1007 78
ArrayList中的元素:
张三 1001 98
李四 1002 96
孙七 1005 95
马十二 1010 91
赵六 1004 92
钱十一 1009 88
王五 1003 88
周八 1006 83
郑十 1008 85
吴九 1007 78
HashTable中的元素:
张三 1001 98
李四 1002 96
孙七 1005 95
马十二 1010 91
赵六 1004 92
钱十一 1009 88
王五 1003 88
周八 1006 83
郑十 1008 85
吴九 1007 78
```
注意:这道题的关键在于排序,这里使用了 `Arrays.sort()` 方法,通过比较总成绩进行排序。其他部分比较简单,分别将排序后的对象放入 Vector、ArrayList、HashTable 中并将其输出即可。如果不了解 Vector、ArrayList、HashTable 的用法,可以去查阅相关资料。
阅读全文