Java集合基础

该文章展示了一个基于Java的简单学生管理系统,使用ArrayList集合来动态存储和管理Student对象。系统支持添加、删除、修改和查询学生信息,提供了用户交互菜单。ArrayList作为可变容量的存储模型,相比固定容量的数组,更适应数据量的变化。
摘要由CSDN通过智能技术生成

集合和数组的对比

集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以改变。

集合和数组的区别:
共同点:都是存储数据的容器
不同点:数组的容量是固定的,集合的容量是可变的

ArrayList集合

在这里插入图片描述

ArrayList
可调整大小的数组实现
是一种特殊的数据类型,泛型

在出现E的地方我们使用引用数据类型替换即可
ArrayList,ArrayList

ArrayList集合的常用方法
在这里插入图片描述

获取元素

for(int i = 0; i < 集合对象.size(); i++) {
        集合对象.get(i)  就是指定索引处的元素
        }

遍历集合

for(int i = 0; i < 数组.length; i++) {
    数组名[索引];
}

学生管理系统

package com.java.stage2.lesson9;

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

/**
 * @author lesous
 * @date 2023/03/30
 * <p>
 * 简单的学生管理系统
 */
public class StudentManageSystem {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        ArrayList<Student> studentArrayList = new ArrayList<>();
        StudentManageSystem studentManageSystem = new StudentManageSystem();
        while (true) {
            studentManageSystem.menu();
            int id = studentArrayList.size() + 1;
            int select = scanner.nextInt();
            Student tmp = new Student();
            int tmpid = 0;
            switch (select) {
                case 1:
                    System.out.println("请输入学生的 姓名,年龄,出生日期");
                    String name = studentManageSystem.inputname();
                    int age = studentManageSystem.inputage();
                    String birthday = studentManageSystem.inputbirthday();
                    Student student = new Student(id, name, age, birthday);
                    studentArrayList.add(student);
                    System.out.println("添加成功");
                    break;
                case 2:
                    System.out.println("请输入要删除学生的学号");
                    tmpid = scanner.nextInt();
                    if (studentArrayList.size() >= tmpid) {

                        for (int i = 0; i < studentArrayList.size(); i++) {
                            tmp = studentArrayList.get(i);
                            if (tmp.getId() == tmpid) {
                                studentArrayList.remove(i);
                            }
                        }
                        System.out.println("删除成功");
                        break;
                    } else {
                        System.out.println("没有该学生,请重新选择功能");
                        break;
                    }

                case 3:
                    System.out.println("请输入要修改学生的学号");
                    tmpid = scanner.nextInt();
                    if (studentArrayList.size() >= tmpid) {
                        for (int i = 0; i < studentArrayList.size(); i++) {
                            tmp = studentArrayList.get(i);
                            if (tmp.getId() == tmpid) {
                                tmp.setName(studentManageSystem.inputname());
                                tmp.setAge(studentManageSystem.inputage());
                                tmp.setBirthday(studentManageSystem.inputbirthday());
                            }
                        }
                    } else {
                        System.out.println("没有该学生,请重新选择功能");
                        break;
                    }
                case 4:
                    if (studentArrayList.size() != 0) {
                        for (int i = 0; i < studentArrayList.size(); i++) {
                            tmp = studentArrayList.get(i);
                            outputstudent(tmp);
                            System.out.println("***");
                        }
                        break;
                    } else {
                        System.out.println("系统中没有学生,请重新选择功能");
                        break;
                    }
                case 5:
                    System.out.println("请输入要查看的学生学号");
                    tmpid = scanner.nextInt();
                    for (int i = 0; i < studentArrayList.size(); i++) {
                        tmp = studentArrayList.get(i);
                        if (tmp.getId() == tmpid) {
                            outputstudent(tmp);
                            break;
                        }
                    }
                    break;
                case 6:
                    return;
                default:
                    System.out.println("输入有误,请选择功能");
                    break;
            }
        }
    }

    private static void outputstudent(Student tmp) {
        System.out.println("学生的名字为:" + tmp.getName());
        System.out.println("学生的学号为:" + tmp.getId());
        System.out.println("学生的年龄为:" + tmp.getAge());
        System.out.println("学生的出生日期为:" + tmp.getBirthday());
    }


    public void menu() {
        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("-------请输入数字选择需要的功能------");
    }

    public String inputname() {
        System.out.println("请输入名字");
        Scanner scanner = new Scanner(System.in);
        String name = scanner.next();
        return name;
    }

    public int inputage() {
        int age = 0;
        Scanner scanner = new Scanner(System.in);

        while (true) {
            System.out.println("请输入年龄");
            String tmps = scanner.next();
            int[] tmpi = new int[3];
            lo:
            while (tmps.length()<4) {
                for (int i = 0; i < tmps.length(); i++) {
                    if (tmps.charAt(i) >= 48 && tmps.charAt(i) <= 57) {
                        tmpi[i] = tmps.charAt(i)-48;
                    }
                    else{
                        break lo;
                    }
                }
                age = tmpi[0] * 10 + tmpi[1];
                return age;
            }
            System.out.println("年龄有误");

        }

    }


    public String inputbirthday() {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请以”xxxx-xx-xx“的形式输入出生日期");
            String birthday = scanner.next();
            lo:
            while (birthday.length() == 10) {
                for (int i = 0; i < 10; i++) {
                    if (i == 4 || i == 7) {
                        if (birthday.charAt(i) != '-') {
                            break lo;
                        }
                    } else if (birthday.charAt(i) < 48 || birthday.charAt(i) > 57) {
                        break lo;
                    }
                }
                return birthday;
            }
            System.out.println("格式错误请重新输入");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值