携手创作,共同成长!这是我参与「掘金日新计划 · 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天,敬请期待下文,谢谢支持。