利用Java集合实现学生信息的”增删查“
2024-10-21 04:17:57
之前学了Java中的集合,打算写一个小程序来消化一下!
那么我们知道,集合相比数组的优点就是可以动态的增加元素,这对比数组来说,十分的便捷;
并且集合为我们封装好一些方法,可以更好的做一些数据操作!
首先创建一个学生类,代码如下:
public class Student {
private String name;
private Integer age;
private String address;
private String stuID; public Student(String name,Integer age,String address,String stuID){
this.name = name;
this.age = age;
this.address = address;
this.stuID = stuID;
} public String getName() {
return name;
}
public Integer getAge(){
return age;
}
public String getAddress(){
return address;
}
public String getStuID(){
return stuID;
}
}
这个学生类包含了姓名,年龄,地址,学号四个字段,来保存学生的个人信息;
然后创建一个主类,来实现CRUD操作!
增添学生:
通过数据库的知识我们知道,一个表中需要一个元素被设定为主键,方便和其他的表建立关系,那么在这里我们设定学号为主键,通过对学号,判断是否存在该学生,
如果有,则返回该学生信息,若没有,增加学生信息,代码如下:
public static void addStudent() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的学号:");
String stuID = sc.nextLine();
Student student = getByStuIdStudent(stuID);
if (student != null) {
System.out.println("该学号已被其他学生使用!");
return;
}
System.out.println("请输入学生姓名:");
String name = sc.nextLine();
System.out.println("请输入学生地址:");
String address = sc.nextLine();
System.out.println("请输入学生的年龄:");
Integer age = sc.nextInt();
stus.add(new Student(name, age, address, stuID));
System.out.println("添加成功");
}
public static Student getByStuIdStudent(String stuID) {
for (int i = 0; i < stus.size(); i++) {
Student student = stus.get(i);
if (student.getStuID().equals(stuID)) { return student;
}
}
return null;
}
查看学生信息:
public static void showStudent(){
if(stus.size() == 0){
System.out.println("该集合中无数据。。。。。");
return;//程序不会继续向下执行
}
for(int i = 0;i< stus.size();i++){
Student student = stus.get(i);
System.out.println("姓名:" + student.getName() + " " + "年龄:" + student.getAge() + " " + "地址:" + student.getAddress() + " "+ "学号" + student.getStuID());
}
}
删除学生信息:
public static void deleteStudent(){
System.out.println("请输入删除学生的学号:");
Scanner scanner = new Scanner(System.in);
String stuID = scanner.nextLine();
for (int i = 0;i<stus.size();i++){
Student student = stus.get(i);
if(student.getStuID().equals(stuID)){
stus.remove(i);
System.out.println("删除成功!!!");
return;
} }
主函数代码:
private static ArrayList<Student> stus = new ArrayList<Student>(); public static void main(String[] args) {
while (true) {
System.out.println("--欢迎来到学生信息管理系统---");
System.out.println("1.新增学生");
System.out.println("2.删除学生");
System.out.println("3.查询学生");
System.out.println("4.退出系统");
System.out.println("请选择[1-4]");
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
switch (number) {
case 1:
System.out.println("新增学生");
addStudent();
break;
case 2:
System.out.println("删除学生");
deleteStudent();
break;
case 3:
System.out.println("查询学生");
showStudent();
break;
case 4:
System.out.println("系统退出");
return; }
}
最新文章
- Windows10环境搭建Elasticsearch+Kibana+Marvel
- 《App研发录》知识点汇总
- WP8_区分滑动和点击(在图片列表中)
- hdu 4352 XHXJ&#39;s LIS 数位DP
- Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_3
- Axure RP 8.0 中继器初体验
- springmvc+mybatis+spring 整合 SSM
- 《Mastering Opencv ...读书笔记系列》车牌识别(II)
- 关联查询一张小表。对性能有影响吗(mysql)
- Deploy .Net project automatically with MsBuild and MsDeploy (1)
- rsyslogd以及日志轮替logrotate的梳理
- Linux Centos 删除除某(多)个文件之外的所有文件
- 使用 Topshelf 创建 Windows 服务
- MySQL:explain 和 慢查询日志
- 数据库设计---PowerDesigner(物理模型和概念模型)
- mysql 和php 保留2位小数
- MD5、SHA1加密java 16位32位
- Linux文件系统命令 ln
- (转)nginx+iis实现负载均衡
- 跨域方法:JSONP、iframe
热门文章
- CSS样式快速入门
- 万答#18,MySQL8.0 如何快速回收膨胀的UNDO表空间
- ahooks 中那些控制“时机”的hook都是怎么实现的?
- FTP 基础 与 使用 Docker 搭建 Vsftpd 的 FTP 服务
- CLIP:多模态领域革命者
- Spring 03: 基于xml的构造方法注入
- CSS 标签、类名和ID选择器有空格和没有空格的区别
- 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况
- 基于ASP.NET Core 6.0的整洁架构
- 简单创建一个SpringCloud2021.0.3项目(四)