需求:
后台程序需要存储学生信息并展示然后要提供按照学号搜索学生信息的功能
分析:
① 定义一个Student类,定义ArrayList集合存储学生对象信息并遍历展示出来
② 提供一个方法,可以接收ArrayList集合,和要搜索的学号,返回搜索的学生对象并展示.
③ 使用死循环,让用户可以不停的搜索
学号 | 姓名 | 年龄 | 班级 |
---|---|---|---|
20180302 | 叶孤城 | 23 | 护理一班 |
20180303 | 东方不败 | 23 | 推拿二班 |
20180304 | 西门吹雪 | 26 | 中药学四班 |
20180305 | 梅超风 | 26 | 神经科二班 |
学生类
public class Student {
private String studyNumber;
private String name;
private int age;
private String className;
public Student() {
}
public Student(String studyNumber, String name, int age, String className) {
this.studyNumber = studyNumber;
this.name = name;
this.age = age;
this.className = className;
}
public String getStudyNumber() {
return studyNumber;
}
public void setStudyNumber(String studyNumber) {
this.studyNumber = studyNumber;
}
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
}
测试类
public static void main(String[] args) {
//1.定义学生类
//2.创建集合存储学生对象,创建学生对象封装学生信息
//把学生对象添加到集合中去
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("20180302", "叶孤城",23,"护理一班"));
students.add(new Student("20180303", "东方不败",23,"推拿二班"));
students.add(new Student("20180304", "西门吹雪",26,"中医药三班"));
students.add(new Student("20180305", "梅超风",26,"神经科四班"));
//3.遍历这些学生信息展示
System.out.println("学号\t\t\t姓名\t\t年龄\t班级");
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
System.out.println(s.getStudyNumber() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getClassName());
}
//4.定义方法完成按照学号的搜索
Scanner sc = new Scanner(System.in);
while (true){//使用死循环可以让用户不断地搜索
System.out.println("请您输入学号查询学生对象: ");
String studyNumber = sc.next();
//5.调用方法查询
Student s = getStudentById(students, studyNumber);
//6.判断s中是否存在学生对象地址
if(s == null){
System.out.println("对不起,查无此人!");
}else {
System.out.println("您查询的学生信息如下: ");
System.out.println(s.getStudyNumber() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getClassName());
}
}
}
/**
* 根据学生的学号查询学生对象返回
* @param students 存储全部学生对象的集合
* @param studyNumber 搜索学生信息的学号
* @return 学生对象 | null
*/
public static Student getStudentById(ArrayList<Student> students,String studyNumber){
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
//2.询问当前遍历的这个学生对象的学号,是否是我们要找的学号
if (s.getStudyNumber().equals(studyNumber)){
//学号是字符串,可以调用String的方法判断搜索的学号与集合里的学号是否相同
//这个s代表的学生对象就是我们要找的
return s;//把这个学生对象的地址送出去
}
}
return null;//查无此人
}
}
运行截图: