Java中的集合3——学生管理系统(2)

简介: Java中的集合3——学生管理系统(2)

一、前言


上篇文章介绍了部分功能,本文将会实现剩余的功能:删除学生、修改学生以及查找学生


二、删除学生功能


1️⃣解题思路


1.定义一个带参数的方法,用来实现删除学生的功能

2.参数为一个集合,用来存储添加完学生的数据

3.键盘录入一个学号

4.遍历集合,查找与键盘录入相同的学号

5.如果在集合中能找到对应数据,就删除,并返回"删除成功"的提示语句

6.如果没有找到,则返回"查无此人,请重新输入"的提示语句


2️⃣代码实现


public static void removeStudent(ArrayList<student> Array){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要删除学生的学号");
        String id = in.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("删除成功");
                break;
            }
            else{
                System.out.println("查无此人,请重新输入");
                break;
            }
        }
    }


三、修改学生功能


1️⃣解题思路


1.定义一个带参数的方法,用来实现修改学生的功能

2.从键盘录入要修改学生的学号 用于查找该学生的信息

3.录入新的学号、姓名和性别并传递给一个新的参数,以便在修改时赋值

4.定义一个新的类来存放刚刚录入的数据

5.遍历数组,找到刚刚输入的学号对应的信息

6.如果找得到,就修改原来的信息为刚刚新录入的信息,并返回"修改成功"的提示信息

7.如果找不到对应学号,就返回"查无此人,请重新输入"的提示语句


2️⃣代码实现


public static void modifyStudent(ArrayList<student> Array){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要修改学生的学号");
        String id = in.next();
        System.out.println("请输入新的姓名");
        String newName = in.next();
        System.out.println("请输入新的学号");
        String newId = in.next();
        System.out.println("请输入新的性别");
        String newGender = in.next();
        student stu = new student();
        stu.setId(newId);
        stu.setName(newName);
        stu.setGender(newGender);
        for (int i = 0; i < Array.size(); i++) {
            student s = Array.get(i);
            if(s.getId().equals(id)){
                Array.set(i,stu);
                System.out.println("修改成功");
                break;
            }
            else {
                System.out.println("查无此人,请重新输入!");
            }
        }
    }


四、查找学生功能


1️⃣解题思路


1.定义一个带参数的方法,用来实现查找学生的功能

2.键盘录入一个学生的学号

3.遍历集合,寻找刚刚输入的学号对应的信息

4.如果找得到,就输出学号对应的学生信息,并使用制表符 \t 来间隔,使得输出信息更加整齐

5.如果找不到,就返回"查无此人"的提示信息


2️⃣代码实现


public static void searchStudent(ArrayList<student> Array){
        System.out.println("请输入要查找学生的学号");
        Scanner in = new Scanner(System.in);
        String num = in.next();
        for (int i = 0; i < Array.size(); i++) {
            student s = Array.get(i);
            if (s.getId().equals(num)) {
                System.out.println("学号" + "\t" + "姓名" + "\t" + "性别" + "\t");
                System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getGender() + "\t");
                break;
            }
            else {
                System.out.println("查无此人!");
            }
        }
    }


五、结语


目前学生管理系统并没有登录注册和退出页面,会在下一篇中讲解

相关文章
|
6天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
25 6
|
6天前
|
存储 Java
深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。
【10月更文挑战第16天】本文深入探讨了Java集合框架中的HashSet和TreeSet,解析了两者在元素存储上的无序与有序特性。HashSet基于哈希表实现,添加元素时根据哈希值分布,遍历时顺序不可预测;而TreeSet利用红黑树结构,按自然顺序或自定义顺序存储元素,确保遍历时有序输出。文章还提供了示例代码,帮助读者更好地理解这两种集合类型的使用场景和内部机制。
20 3
|
6天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
15 2
|
8天前
|
存储 算法 Java
Java Set因其“无重复”特性在集合框架中独树一帜
【10月更文挑战第14天】Java Set因其“无重复”特性在集合框架中独树一帜。本文深入解析Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定的数据结构(哈希表、红黑树)确保元素唯一性,并提供最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的`hashCode()`与`equals()`方法。
19 3
|
2天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
24 5
|
3天前
|
安全 Java 程序员
Java集合之战:ArrayList vs LinkedList,谁才是你的最佳选择?
本文介绍了 Java 中常用的两个集合类 ArrayList 和 LinkedList,分析了它们的底层实现、特点及适用场景。ArrayList 基于数组,适合频繁查询;LinkedList 基于链表,适合频繁增删。文章还讨论了如何实现线程安全,推荐使用 CopyOnWriteArrayList 来提升性能。希望帮助读者选择合适的数据结构,写出更高效的代码。
20 3
|
2天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
11 1
|
6天前
|
存储 Java 数据处理
Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。
【10月更文挑战第16天】Java Set:无序之美,不重复之魅!Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。通过 hashCode() 和 equals() 方法实现唯一性,适用于需要唯一性约束的数据处理。示例代码展示了如何使用 HashSet 添加和遍历元素,体现了 Set 的高效性和简洁性。
17 4
|
6天前
|
Java 关系型数据库 API
介绍一款Java开发的企业接口管理系统和开放平台
YesApi接口管理平台Java版,基于Spring Boot、Vue.js等技术,提供API接口的快速研发、管理、开放及收费等功能,支持多数据库、Docker部署,适用于企业级PaaS和SaaS平台的二次开发与搭建。
|
8天前
|
存储 Java 数据处理
Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。
Java Set:无序之美,不重复之魅!Set 是 Java 集合框架中的一个接口,不包含重复元素且不保证元素顺序。它通过 hashCode() 和 equals() 方法确保元素唯一性,适用于需要唯一性约束的数据处理。示例代码展示了如何使用 HashSet 实现这一特性。
15 5