day10-----集合

集合的优势:
(1)数组存储的不足与缺陷:
长度开始必须执行,而且一旦指定,无法修改
保存的必须为同一类型的元素
使用数组进行增加/删除操作比较麻烦
(2)集合的好处:
可以动态保存多个对象,使用方便
提供了一系列方便的操作对象的方法,如add、remove、set、get等
使用集合增加/删除较方便
 

package com.wanxi;

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

public class ManagementSystem {
    public static void main(String[] args) throws InterruptedException {
        ArrayList<Student> allStudent = new ArrayList<Student>();
        Scanner scanner = new Scanner(System.in);
        ManagementSystem managementSystem = new ManagementSystem();
        int sid = 0;
        while (true) {
            int selection = managementSystem.getSelection(scanner);//得到操作选择
            switch (selection) {
                case 1://添加学生
                    sid += 1;
                    managementSystem.addStudent(allStudent, scanner, sid);
                    break;
                case 2://删除学生
                    managementSystem.deleteStudent(allStudent, scanner);
                    break;
                case 3://修改学生
                    managementSystem.changeStudent(allStudent, scanner);
                    break;
                case 4://通过Id查找学生
                    managementSystem.findStudent(allStudent, scanner);
                    break;
                case 5://查看所有学生信息
                    managementSystem.showStudent(allStudent);
                    break;
                case 6://退出操作系统
                    managementSystem.exitSystem();
                    break;
                default:
                    System.out.println("你的输入操作有误,请重新输入!");
                    break;
            }
        }
    }

    /**
     * 退出系统操作
     *
     * @throws InterruptedException
     */
    private void exitSystem() throws InterruptedException {
        for (int i = 3; i >= 0; i--) {
            Thread.sleep(500);
            System.out.println(i + " ");
        }
    }

    /**
     * 查看所有学生信息
     *
     * @param allStudent
     */
    private void showStudent(ArrayList<Student> allStudent) {
        for (int i = 0; i < allStudent.size(); i++) {
            Student theStudent = allStudent.get(i);
            System.out.println(theStudent);
        }
    }

    /**
     * 通过Id查找学生
     *
     * @param allStudent
     * @param scanner
     */
    private void findStudent(ArrayList<Student> allStudent, Scanner scanner) {
        System.out.println("请输入需要查找的学生ID: ");
        int findSid = scanner.nextInt();
        int findTime = 0;
        for (int i = 0; i < allStudent.size(); i++) {
            Student searchStudent = allStudent.get(i);
            if (findSid == searchStudent.getSid()) {
                findTime++;
                System.out.println(searchStudent);
            }
        }
        if (findTime == 0) {
            System.out.println("未找到该学生ID的学生信息");
        }
    }

    /**
     * 通过Id查找并修改学生信息。
     *
     * @param allStudent
     * @param scanner
     */
    private void changeStudent(ArrayList<Student> allStudent, Scanner scanner) {
        System.out.println("请输入需要修改的学生ID: ");
        int changeSid = scanner.nextInt();
        System.out.println("请输入需要修改的学生新信息:姓名,年龄,出生年月");
        String changeName = scanner.next();
        int changeAge = scanner.nextInt();
        String changeBirthday = scanner.next();
        int changeTime = 0;
        for (int i = 0; i < allStudent.size(); i++) {
            Student changeStudent = allStudent.get(i);
            if (changeSid == changeStudent.getSid()) {
                changeTime++;
                changeStudent.setName(changeName);
                changeStudent.setAge(changeAge);
                changeStudent.setBirthday(changeBirthday);
                System.out.println("学生信息修改成功");
            }
        }
        if (changeTime == 0) {
            System.out.println("未找到该学生ID的学生信息");
        }
    }

    /**
     * 通过Id查找并删除学生的操作
     *
     * @param allStudent
     * @param scanner
     */
    private void deleteStudent(ArrayList<Student> allStudent, Scanner scanner) {
        System.out.println("请输入需要删除的学生ID: ");
        int deleteSid = scanner.nextInt();
        int deleteTime = 0;
        for (int i = 0; i < allStudent.size(); i++) {
            Student deleteStudent = allStudent.get(i);
            if (deleteSid == deleteStudent.getSid()) {
                deleteTime++;
                allStudent.remove(i);
                System.out.println("已删除该学生ID的学生信息");
            }
        }
        if (deleteTime == 0) {
            System.out.println("未找到该学生ID的学生信息");
        }
    }

    /**
     * 添加学生的操作
     *
     * @param allStudent
     * @param scanner
     * @param sid
     */
    private void addStudent(ArrayList<Student> allStudent, Scanner scanner, int sid) {
        System.out.println("请输入需要添加的学生姓名,年龄,出生年月: ");
        String name = scanner.next();
        int age = scanner.nextInt();
        String birthday = scanner.next();
        Student addStudent = new Student(sid, name, age, birthday);
        allStudent.add(addStudent);
        System.out.println("添加学生成功,如此查看,可点击选项5:查看所有学生");
    }

    /**
     * 返回操作选择
     *
     * @param scanner
     * @return
     */
    private int getSelection(Scanner scanner) {
        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("6 退出系统");
        System.out.println("请输入你的选择:");
        int selection = scanner.nextInt();
        return selection;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值