利用Java集合实现学生信息的”增删查“
之前学了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;
}
}
利用Java集合实现学生信息的”增删查“的更多相关文章
- JAVA原生mvc实现用户信息的增删查改
笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...
- java实现简单的数据库的增删查改,并布局交互界面
一.系统简介 1.1.简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...
- Java学生信息增删改查(并没用数据库)
一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...
- JAVA课程设计-学生信息管理系统(个人博客)
1. 团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模块或任务说明 负责person类的编写,建立person对象, 完成M ...
- Java用户名登录学生信息管理系统并对其进行增删改查操作
package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...
- Java课程设计---学生信息管理系统需求分析及总体设计
按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...
- Spring Boot实现学生信息增删改查
上一篇博客写了如何初始化一个简单的Spring Boot项目,这次详细记录一下如何连接数据库并实现增删改查基本操作. 我使用的是MySQL 5.5+Navicat,MySQL量级比较轻,当然微软的SQ ...
- MVC模式的学生信息增删改查
准备:建一个名为 userdb的数据库.建一个student表,有stuid,stuname,gender三个字段.其中stuid为主键.j加入相应的驱动包,相应的JSTL标签 先看目录结构 代码: ...
- Sqlite3 实现学生信息增删改查
import sqlite3 conn = sqlite3.connect('studentsdb.db') # 连接数据库 cursor = conn.cursor( ) # 创建数据表 def c ...
随机推荐
- JAVA定时任务原理入门
本文适用语言:java 序章:定时任务实现方式 当下,java编码过程中,实现定时任务的方式主要以以下两种为主 spring框架的@Scheduled quzrtz框架 网络上关于这两种框架的实践和配 ...
- 枚举子集为什么是 O(3^n) 的
这是更新日志 \(2021/2/9\) 代数推导 \(2021/2/10\) 组合意义,构建 TOC 目录 枚举子集 复杂度证明 代数推导 组合意义 Summary 枚举子集 枚举子集为什么是 \(O ...
- 不安装运行时运行.NET程序
好久没写文章了,有些同学问我公众号是不是废了?其实并没有.其实想写的东西很多很多,主要是最近公司比较忙,以及一些其他个人原因没有时间来更新文章.这几天抽空写了一点点东西,证明公众号还活着. 长久以来的 ...
- 技术分享 | 为什么MGR一致性模式不推荐AFTER
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1.引子 2.AFTER 的写一致性 3.AFTER 的读一致性 4.AFTER 执行流程 5.BEFORE 执行流程 6 ...
- while 循环、do- while 循环 和 for 循环之间的那点事
C语言自学之三种循环比较 使用循环计算1-2+3-4+5-6+--100的值? 在编辑器中给出了三种循环体结构的部分代码,请选择合适的循环结构补全代码实现此功能. 运行结果为: sum=- ...
- 什么?WPF 不支持 SVG ?
什么?WPF 不支持 SVG ? 控件名:SharpVectors 作者:Elinam LLC (Japan) 项目地址: https://github.com/ElinamLLC/SharpVect ...
- [JOI 2017 Final] 足球 (建图,最短路)
题面 题解 我们可以总结出球的两种状态,要么自己飞,要么在球员脚下被带飞. 自己飞的情况下,他只能单向直线运动,每一步代价为A,被带飞可以乱走,每一步代价为C. 从自己飞到被带飞需要一个距离自己最近的 ...
- 图床搭建|chrome插件|操作简单不要钱
为什么需要一个图床 为了写博客 图床:专门用来存放图片,同时允许你把图片对外连接的网上空间. 用markdown格式写作,插入图片需要图片的url地址,然后博客的背景图也是要用url地址. 有段时间, ...
- C# 数组 深拷贝 和 数组传参
前言 C#中引用类型无法使用const,因此传参的时候使用引用类型,一定要注意是否会改变其值.下面介绍几种 数组的 深拷贝方法. 前提 下面的测试代码有一些前提, sw为Stopwatch nForT ...
- 关于 Math.random()生成指定范围内的随机数的公式推导
关于 Math.random()生成指定范围内的随机数的公式推导 在 java 中,用于生成随机数的 Math 方法 random()只能生成 0-1 之间的随机数,而对于生成指定区间,例如 a-b ...