与计算机的情话--Java-(21)

87 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情

1、前言

一个人要有自己的目标,只有在自己的目标中前进、奋斗,才能体会到达到目标时一路上的心酸滋味。

今天天气还是挺好的,就是热了点,估计这也是今年最后一天热了。

2、正文

昨天就学了一个案例,就发现了问题,这要是自己在项目中搞,这不就出大问题了,那你可就惨啦!

今天再来学习一个实例,这都是以后经常用到的,现在学会了,以后碰到类似的不就手拿把掐儿,也为了以后避免在项目上犯这种错误。好直接开始。

实例是学生信息系统的数据搜索

需求是:后台程序需要存储学生信息并展示,然后还要提供按照学号搜索学生信息的功能

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;
    }
    //...getter + setter
 }
public class ArrayList4 {
    public static void main(String[] args) {
        //定义学生类
        //创建集合存储学生对象,创建学生对象封装学生信息
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("20180302", "奥特曼", 23, "拯救世界一班"));
        students.add(new Student("20180303", "东方不败", 22, "武打二班"));
        students.add(new Student("20180304", "喜羊羊", 18, "吃草三班"));
        students.add(new Student("20180305", "光头强", 30, "砍树四班"));
        //遍历学生信息并展示
        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());

        }
        //定义方法完成按照学号的搜索功能
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("请您输入学号查询学生对象");
            String studyNumber = sc.next();
            //调用方法查询
            Student s = getStudentById(students, studyNumber);
            //判断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());
            }
        }
    }
    
    public static Student getStudentById(ArrayList<Student> students, String studyNumber) {
        //遍历全部学生对象
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            //询问当前遍历的这个学生对象的学号,是不是我们要找的学号
            if(s.getStudyNumber().equals(studyNumber)){
                return s;
            }
        }
        //查无此人
        return null;
    }
}

集合中存储的元素并不是对象本身,而是对象的地址。

今天是我参加8月更文挑战的第21天,敬请期待下文,谢谢支持。