/*第二关,设置集合元素,输入一个学号,查找该学生,
若找到,则显示"该学生存在”,然后删除,否则提示“该学生不存在” 。最后显示集合列表。
请在下面标注【】处补充代码
*/
import java.util.ArrayList;
import java.util.Scanner;
import java.util.*;
public class StudentTest2 {
public static void main(String[] args) {
//创建ArrayList类的集合 stuScoreList,表示多个学生对象
ArrayList<StudentScore>stuScoreList=new ArrayList<StudentScore>();
/*将以下三个学生的信息添加到集合中
学号: 200807201 姓名: wanghai 成绩: 78.0
学号: 200807202 姓名: hanhan 成绩: 85.0
学号: 200807203 姓名: weimin 成绩: 95.0
*/
StudentScore stu;
stu= new StudentScore("200807201","wanghai",78);
stuScoreList.add(stu);
StudentScore stu1;
stu1= new StudentScore("200807202","hanhan",85);
stuScoreList.add(stu1);
StudentScore stu2;
stu2= new StudentScore("200807203","weimin",95);
stuScoreList.add(stu2);
//输入学号,
System.out.println("输入待查找的学生的学号:");
Scanner sc = new Scanner(System.in);
String number;
number = sc.nextLine();
stu = new StudentScore(number, " ",0);
//根据学号查找该学生的索引号,若找到,则返回该索引号,否则返回-1。 用indexOf()方法
int index = -1;
for(int x=0; x<stuScoreList.size(); x++) {
StudentScore s = stuScoreList.get(x);
if(s.stuNumber.equals(number)) {
index = x;
break;
}
}
if(index == -1) {
System.out.println("该学生不存在");
}else {
//根据返回值判断该学生是否存在,若存在,则显示"该学生存在"并删除,否则提示"该学生不存在"
stuScoreList.remove(index);
System.out.println("该学生存在");
}
//显示集合列表
showList(stuScoreList);
}
//显示学生集合list中的元素
public static void showList(ArrayList<StudentScore > list) {
Iterator <StudentScore>it=list.iterator();
while(it.hasNext()){
it.next().show();
}
}
}
//定义学生成绩类,在下面标注【】处补充代码
public class StudentScore {
String stuNumber; // 学号
String stuName; // 姓名
float score; //成绩
//定义带3个参数的构造方法
public StudentScore(String stuNumber,String stuName,float score) {
this.stuNumber=stuNumber;
this.stuName=stuName;
this.score=score;
}
//显示学生信息
public void show() {
System.out.printf("学号:%10s 姓名:%10s 成绩:%6.1f\n",stuNumber,stuName,score);
}
//重写equals()方法,实现按学号查询
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
StudentScore stu = (StudentScore)obj;
if ( stu.stuNumber.equals(this.stuNumber))
return true;
else
return false;
}
}