Java集合是用来存储和操作一组对象的容器。常见的Java集合框架包括List、Set、Map等,它们提供了不同的数据结构和操作方式,以满足不同的需求。本文将介绍如何使用Java集合来解决一个具体的问题。
问题描述: 假设有一个学生信息管理系统,需要存储学生的姓名和年龄,并能根据学生的姓名进行查询和删除操作。要求实现以下功能:
- 添加学生信息:输入学生的姓名和年龄,将其添加到学生集合中。
- 查询学生信息:输入学生的姓名,返回该学生的年龄。
- 删除学生信息:输入学生的姓名,将该学生的信息从学生集合中删除。
解决方案: 首先,我们需要选择合适的集合类型来存储学生信息。考虑到查询和删除操作需要根据姓名进行,我们可以选择使用Map集合,其中Key为学生的姓名,Value为学生的年龄。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class StudentManager {
private Map<String, Integer> students;
public StudentManager() {
students = new HashMap<>();
}
public void addStudent(String name, int age) {
students.put(name, age);
}
public int getStudentAge(String name) {
return students.get(name);
}
public void removeStudent(String name) {
students.remove(name);
}
public static void main(String[] args) {
StudentManager manager = new StudentManager();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入操作:1-添加学生信息,2-查询学生信息,3-删除学生信息,0-退出");
int operation = scanner.nextInt();
if (operation == 0) {
break;
}
switch (operation) {
case 1:
System.out.println("请输入学生姓名:");
String name = scanner.next();
System.out.println("请输入学生年龄:");
int age = scanner.nextInt();
manager.addStudent(name, age);
System.out.println("添加成功!");
break;
case 2:
System.out.println("请输入学生姓名:");
name = scanner.next();
age = manager.getStudentAge(name);
System.out.println(name + "的年龄是:" + age);
break;
case 3:
System.out.println("请输入学生姓名:");
name = scanner.next();
manager.removeStudent(name);
System.out.println("删除成功!");
break;
default:
System.out.println("无效的操作!");
break;
}
}
scanner.close();
}
}
上述代码中,我们使用HashMap作为学生信息的存储容器。在StudentManager类中,我们提供了添加学生信息的addStudent方法、查询学生信息的getStudentAge方法和删除学生信息的removeStudent方法。在main方法中,我们通过命令行交互的方式调用这些方法,实现了学生信息的管理功能。
下面我们使用甘特图和状态图来展示整个学生信息管理系统的流程和状态变化。
甘特图:
gantt
title 学生信息管理系统甘特图
dateFormat YYYY-MM-DD
section 添加学生信息
输入学生姓名和年龄 :a1, 2022-12-01, 1d
将学生信息添加到集合中 :a2, after a1, 1d
section 查询学生信息
输入学生姓名 :a3, 2022-12-02, 1d
查询学生信息 :a4, after a3, 1d
section 删除学生信息
输入学生姓名 :a5, 2022-12-03, 1d
删除学生信息 :a6, after a5, 1d
状态图:
stateDiagram
[*] --> 添加学生信息
添加学生信息 --> 查询学生信息
查询学生信息 --> 删除学生信息
删除学生信息 --> [*]
以上甘特图和状态图展示了学生信息管理系统的流程和状态变化。首先,用户可以选择添加学生信息,输入学生的姓名和年龄,并将其添加到学生集合中。然后,用户可以选择查询学生信息,输入学生的姓名,系统会返回该学生的年龄。最后,用户可以选择删除学生信息