day-09Java基础学习之ArrayList集合和简单的学生管理系统

一:ArrayList

ArrayList:集合。是数组的升级品,是一个更强大的容器
创建格式:
ArrayList<要保存元素的数据类型> 对象名 = new ArrayList<要保存元素的数据类型>();

常用方法
1:添加元素
add(元素值); 执行成功后,会返回true;
add(索引,元素值); 向指定的索引位置添加元素;添加得元素会占据该索引,原先元素和后面元素依次后退。没有返回值;
2:删除元素
remove(索引或元素值); 返回的是被删除掉的元素
3:修改元素
set(索引,新元素); 返回的是被替换掉的元素
4:查询元素
get(索引); 返回的是指定索引处的元素;
5:获取长度
size();
集合与数组的区别
相同点
都可以保存多个元素;
不同点
1:数组的长度是固定的,而集合的长度是可变的;
2:数组可以直接保存基本数据类型的数据,而集合不能直接保存基本数据类型的数据;(如果想保存基本数据类型的数据,需要使用对应的包装类型)
作为参数传递
传递的是地址值,在其他方法中,对集合的元素进行修改,原方法中会受影响;

二:一个简单的学生管理系统

学生管理系统要求:
1:使用ArrayList集合保存学生对象
2:使用while死循环配合switch语句让用户选择功能菜单
3:每一个独立的功能写成一个单独的方法,需要有增删改查的功能

import java.util.ArrayList;
import java.util.Scanner;

public class StudentIndex {
     
    public static void main(String[] args) {
     

        ArrayList<Student> array = new ArrayList<>();
//主要功能
        while (true) {
     
            System.out.println("---------欢迎登陆学生管理系统---------");
            System.out.println("1 添加学生");
            System.out.println("2 删除学生");
            System.out.println("3 修改学生");
            System.out.println("4 查看所有学生");
            System.out.println("5 退出");
            //判断执行的操作
            Scanner sc = new Scanner(System.in);
            System.out.println("请选择您要执行的操作序号");
            int num = sc.nextInt();
            switch (num) {
     
                case 1:
                    addStudent(array);
                    break;
                case 2:
                    deleteStudent(array);
                    break;
                case 3:
                    updateStudent(array);
                    break;
                case 4:
                    findStudent(array);
                    break;
                case 5:
                    System.out.println("退出");
                    return;
                default:
                    System.out.println("请输入正确的操作序号");

            }
        }
    }
//添加学生方法
    public static void addStudent(ArrayList<Student> array) {
     
        Scanner sc = new Scanner(System.in);

        while (true) {
     
            System.out.println("请输入学生学号");
            String id = sc.next();
            boolean flag = userId(array, id);
            if (flag) {
     
                System.out.println("学号重复");
            } else {
     

                System.out.println("请输入学生的姓名");
                String name = sc.next();
                System.out.println("请输入学生的年龄");
                int age = sc.nextInt();
                System.out.println("请输入学生的地址");
                String address = sc.next();

                Student s = new Student(id, name, age, address);
                array.add(s);
                System.out.println("添加成功");

                break;
            }

        }


    }
//查找学生方法
    public static void findStudent(ArrayList<Student> array) {
     
        if (array.size() == 0) {
     
            System.out.println("无学生信息,请先添加学生再查询");
            return;
        }
        System.out.println("学号\t\t姓名\t\t年龄\t\t住址");
        for (int i = 0; i < array.size(); i++) {
     
            Student s = array.get(i);
            System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + "\t" + s.getAdress());
        }
    }

    public static void deleteStudent(ArrayList<Student> array) {
     
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除学生的学号");
        String id = sc.next();
        for (int i = 0; i < array.size(); i++) {
     
            Student s = array.get(i);
            if (s.getId().equals(id)) {
     
                array.remove(i);
                System.out.println("删除学生成功");
                return;
            }
        }

        System.out.println("没有此学号");
    }
//修改学生方法
    public static void updateStudent(ArrayList<Student> array) {
     
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改学生的学号");
        String num = sc.next();
        for (int i = 0; i < array.size(); i++) {
     
            Student stu = array.get(i);
            if (stu.getId().equals(num)) {
     
                System.out.println("请输入新姓名");
                String newName = sc.next();
                System.out.println("请输入新年龄");
                int newAge = sc.nextInt();
                System.out.println("请输入新地址");
                String newAddress = sc.next();
                Student stu2 = new Student(num, newName, newAge, newAddress);
                array.set(i, stu2);
                return;
            }

        }

        System.out.println("此学号不存在");
    }
//判断添加时学号是否重复的方法
    public static boolean userId(ArrayList<Student> array, String id) {
     
        for (int i = 0; i < array.size(); i++) {
     
            Student s = array.get(i);
            if (s.getId().equals(id)) {
     
                return true;

            }

        }
        return false;
    }

}

你可能感兴趣的:(Java)