编写学生类,包含学号no、姓名name、成绩score,提供必要的构造函数、toString函数和equals/hashcode函数,其中,toString函数的格式为“no:xxx name:xxx score:xxx”,no参与equals和hashcode的计算 在main函数中构造一个学生列表对象(List),用于存放多个学生对象 从命令行输入多个学生对象,存入列表中 从命令行中读入在列表对象上的操作,具体操作包含: add 添加一个学生(包含学号和学生姓名) delete 删除一个学生(包含学号) set 修改一个学生信息(只修改某学号学生的成绩) 完成操作后按列表顺序输出集合中的学生
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
List<Student> stu = new LinkedList<Student>();
for(int i = 0; i < num; i++) {
int no = scan.nextInt();
String name = scan.next();
int score = scan.nextInt();
Student s = new Student(no, name, score);
stu.add(s);
}
num = scan.nextInt();
for(int i = 0; i < num; i++) {
String op = scan.next();
if(op.equals("add")) {
int no = scan.nextInt();
String name = scan.next();
int score = scan.nextInt();
Student s = new Student(no, name, score);
stu.add(s);
}
else if(op.equals("delete")) {
int pos = scan.nextInt();
for(Iterator<Student> it = stu.iterator(); it.hasNext();) {
Student st = it.next();
if(st.no == pos) {
it.remove();
}
}
}
else if(op.equals("set")){
int pos = scan.nextInt();
int s = scan.nextInt();
for(Iterator<Student> iter = stu.iterator(); iter.hasNext();) {
Student st = iter.next();
if(st.no == pos) {
st.score = s;
}
}
}
}
for(Student s : stu) {
System.out.println(s);
}
}
}
class Student{
public int no;
public String name;
public int score;
Student(int n, String na, int s){
no = n;
name = na;
score = s;
}
public String toString() {
return "no:"+no+" name:"+name+" score:"+score;
}
}