
package com.itheima.arraylist;import java.util.ArrayList;import java.util.Scanner;/* 案例:学生信息系统:展示数据,按照学号完成搜索 学生类信息(学号,姓名,性别,班级) 测试数据: "20180302","叶孤城",23,"护理一班" "20180303","东方不败",23,"护理二班" "20180304","西门吹雪",26,"护理三班" "20180305","梅超风",27,"护理四班" */public class ArrayListTest6 { public static void main(String[] args) { // 1.定义一个学生类(自己定义一个类可以方便给成员赋值后,返回成员) // 2.创建集合存储学生对象,创建学生对象封装学生信息 // 把学生对象添加到集合中去 ArrayList<Student> students = new ArrayList<>(); // list集合对象用集合方法add, students.add(new Student( "20180302","叶孤城",23,"护理一班")); students.add(new Student("20180303","东方不败",23,"护理二班")); students.add(new Student("20180304","西门吹雪",26,"护理三班")); students.add(new Student("20180305","梅超风",27,"护理四班")); // 3.遍历这些学生的信息展示: System.out.println("学号:\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(); // 调用方法查询 // 查询到后返回的是对象地址 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()); } } } /** * 根据学生的学号查询学生对象的集合 * students 存储全部学生的集合 * studyNumber 搜索学生的学号 // 这两个都作为新参 */ // 这里的返回值类型是对象(Student类的对象) 所以返回值类型写Student public static Student getStudentById(ArrayList<Student> students,String studyNumber){ // 1. 遍历全部学生 for (int i = 0; i < students.size(); i++) { Student s = students.get(i); // 查询当前遍历的这个学生对象的学号是否是我们要找的学号 if (s.getStudyNumber().equals(studyNumber)){ return s; // 如果当前学生的学号,和我们查找的学号一样,就返回对象 } } // 当整个循环结束后都没有查到,就查无此人 return null; }}// 这是一个新定义的学生类 (自己定义一个类可以方便直接调用方法给成员赋值后,返回成员)// 每次定义新的类,封装方法,给类赋予对象,就是面向对象编程,(常用)package com.itheima.arraylist;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; }}