day10-ArrayList集合-学生管理系统案例

ArrayList

创建格式

    ArrayList<要保存元素的数据类型>  对象名 = new ArrayList<要保存元素的数据类型>();

常用方法

	1:添加元素
		add(元素值);  只要执行成功,都会返回true;
		add(索引,元素值); 向指定的位置添加元素;没有返回值;
	2:删除元素
		remove(索引或元素值);  返回的是被删除掉的元素
	3:修改元素
		set(索引,新元素); 返回的是被替换掉的元素
	4:查询元素  
		get(索引); 返回的是指定索引处的元素;
	5:获取长度 
		size();  

集合与数组的区别

相同点

	都可以保存多个元素;

不同点

	1:数组的长度是固定的,而集合的长度是可变的;
	2:数组可以直接保存基本数据类型的数据,而集合不能直接保存基本数据类型的数据;(如果想保存基本数据类型的数据,需要使用对应的包装类型)
	作为参数传递
		传递的是地址值,在其他方法中,对集合的元素进行修改,原方法中会受影响;

思维导图:day10-ArrayList集合-学生管理系统案例_第1张图片

学生管理系统

	1:使用ArrayList集合保存学生对象
	2:使用while死循环配合switch语句让用户选择功能菜单
	3:每一个独立的功能写一个单独的方法即可,注意方法的参数都是ArrayList集合,都不需要返回值;

具体代码实现:

学生类

package StudentUser;
/*
    学生管理系统类
*/
public class Student {
    private String id;
    private String name;
    private String sex;
    private int age;
    private String address;

    public Student() {
    }

    public Student(String id, String name, String sex, int age, String address) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.address = address;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

测试类

package StudentUser;

import javax.swing.text.Style;
import java.util.ArrayList;
import java.util.Scanner;

/*
    学生管理系统测试类
*/
public class StudentDemo {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<Student>();
        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、退出当前系统");
            System.out.println("请选择你要进行的操作序号:");
            Scanner sc=new Scanner(System.in);
            int num=sc.nextInt();
            switch (num){
                case 1:
                    //System.out.println("添加");
                    AddMessage(list);
                    break;
                case 2:
                    //System.out.println("删除");
                    DeleteMessage(list);
                    break;
                case 3:
                    //System.out.println("修改");
                    UpdataMessage(list);
                    break;
                case 4:
                    //System.out.println("查看");
                    ShowMessage(list);
                    break;
                case 5:
                    System.out.println("退出成功!感谢你的使用!");
//                    System.exit(0);
                    return;
                default:
                    System.out.println("你的输入有误!请重新输入:");
                    break;
            }
        }
    }

    //定义添加方法
    public static void AddMessage(ArrayList<Student> list) {
        Student s=new Student();
        Scanner sc=new Scanner(System.in);
        Scanner sc2=new Scanner(System.in);
        System.out.println("请输入添加学生的学号:");
        s.setId(sc.nextLine());
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(s.getId())){
                System.out.println("当前学号已存在!");
                return;
            }
        }
        System.out.println("请输入添加学生的姓名:");
        s.setName(sc.nextLine());
        System.out.println("请输入添加学生的性别:");
        s.setSex(sc.nextLine());
        System.out.println("请输入添加学生的年龄:");
        s.setAge(sc2.nextInt());
        System.out.println("请输入添加学生的现住址:");
        s.setAddress(sc.nextLine());
        list.add(s);
        System.out.println("添加学生成功!");
    }

    //定义查看信息
    public static void ShowMessage(ArrayList<Student> list){
        if(list.size()==0){
            System.out.println("当前系统还没有信息,请先添加信息!");
            return;
        }
        System.out.println("学号:"+"\t\t姓名:"+"\t性别:"+"\t年龄:"+"\t现住址:");
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getName().length()<=2)
                System.out.println(list.get(i).getId()+"\t\t"+list.get(i).getName()+"\t\t"+list.get(i).getSex()+"\t\t"+list.get(i).getAge()+"岁\t\t"+list.get(i).getAddress());
            else if(list.get(i).getName().length()>2){
                System.out.println(list.get(i).getId()+"\t\t"+list.get(i).getName()+"\t"+list.get(i).getSex()+"\t\t"+list.get(i).getAge()+"岁\t\t"+list.get(i).getAddress());
            }
        }
    }

    //定义删除方法
    public static void DeleteMessage(ArrayList<Student> list){
        System.out.println("请输入想要删除学生的学号:");
        while(true){
            Scanner sc=new Scanner(System.in);
            String id=sc.nextLine();
            if(list.size()==0){
                System.out.println("当前系统还没有此位同学的信息,请先添加信息!");
                return;
            }
            for (int i = 0; i < list.size(); i++) {
                if(list.get(i).getId().equals(id)){
                    list.remove(i);
                    System.out.println("删除学生信息成功!");
                    return;
                }else{
                    if(id.equals("0")){
                        System.out.println("操作成功!");
                        return;
                    }else{
                        System.out.println("学号输入错误,请重新输入(输入0返回到主界面):");
                        break;
                    }
                }
            }
        }
    }

    //定义修改方法
    public static void UpdataMessage(ArrayList<Student> list){
        System.out.println("请输入想要修改学生的学号:");
        while(true){
            Scanner sc=new Scanner(System.in);
            Scanner sc2=new Scanner(System.in);
            String id=sc.nextLine();
            int count=0;
            for (int i = 0; i < list.size(); i++) {
                if(list.get(i).getId().equals(id)){
                    System.out.println("请输入修改后的姓名:");
                    list.get(i).setName(sc.nextLine());
                    System.out.println("请输入修改后的性别:");
                    list.get(i).setSex(sc.nextLine());
                    System.out.println("请输入修改后的年龄:");
                    list.get(i).setAge(sc2.nextInt());
                    System.out.println("请输入修改后的现住址:");
                    list.get(i).setAddress(sc.nextLine());
                    System.out.println("修改学生信息成功!");
                    return;
                }
                count++;
            }
            if(list.size()==0){
                System.out.println("当前系统还没有此位同学的信息,请先添加信息!");
                return;
            }else if(count==list.size()){
                if(id.equals("0")){
                    System.out.println("操作成功!");
                    return;
                }else{
                    System.out.println("当前学号不存在!请重新输入(输入0退回到主界面):");
                }
            }
        }
    }
}

你可能感兴趣的:(day10-ArrayList集合-学生管理系统案例)