之前学了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集合实现学生信息的”增删查“的更多相关文章

  1. JAVA原生mvc实现用户信息的增删查改

    笔者最近学完jsp和servlet,于是心血来潮的打算写个简单的用户案例 环境准备: 开发工具eclipse jdk-1.8.0_72 tomcat-9.0.5 前端部分: 1.自己手写了一套样式 2 ...

  2. java实现简单的数据库的增删查改,并布局交互界面

        一.系统简介 1.1.简介  本系统提供了学生信息管理中常见的基本功能,主要包括管理员.管理员的主要功能有对学生信息进行增加.删除.修改.查找等操作,对信息进行管理,对信息进行修改.查找等操作 ...

  3. Java学生信息增删改查(并没用数据库)

    一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...

  4. JAVA课程设计-学生信息管理系统(个人博客)

    1. 团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模块或任务说明 负责person类的编写,建立person对象, 完成M ...

  5. Java用户名登录学生信息管理系统并对其进行增删改查操作

    package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...

  6. Java课程设计---学生信息管理系统需求分析及总体设计

    按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...

  7. Spring Boot实现学生信息增删改查

    上一篇博客写了如何初始化一个简单的Spring Boot项目,这次详细记录一下如何连接数据库并实现增删改查基本操作. 我使用的是MySQL 5.5+Navicat,MySQL量级比较轻,当然微软的SQ ...

  8. MVC模式的学生信息增删改查

    准备:建一个名为 userdb的数据库.建一个student表,有stuid,stuname,gender三个字段.其中stuid为主键.j加入相应的驱动包,相应的JSTL标签 先看目录结构 代码: ...

  9. Sqlite3 实现学生信息增删改查

    import sqlite3 conn = sqlite3.connect('studentsdb.db') # 连接数据库 cursor = conn.cursor( ) # 创建数据表 def c ...

随机推荐

  1. JS常用的3种弹出框

    1.提示框 alert // 没有返回值 alert('你好'); 2.确认框 confirm // 返回 false/true let res = confirm('确定删除?'); if(res ...

  2. 钡铼BL102分布式IO系统如何应用于锂电池行业

    近年来,全球新能源汽车的蓬勃发展促进了锂电池行业的发展.随着锂电池标准化程度的提高,电池和模块规格的标准化是未来的发展趋势,也促进了自动化模块生产线的发展. 锂电池模块生产线通过涂胶-电池堆叠-组装- ...

  3. Odoo 如何下载指定版本源码 && .cfg配置参数

    # 我们使用应用市场上的模块的时候,经常会碰到模块只兼容特定版本,要将模块兼容到自己版本来的时候,就需要下载它原兼容odoo的版本运行. # 这里的-b后面加的11.0就是它的版本.在git中也就是分 ...

  4. 一般处理程序ashx接入微信服务器配置

    首先在威信后台填写服务器相关配置,这里按照说明直接填写就好了.配置提交前在需要在我们服务端先准备号接受微信请求的url,对请求内容做验证. 1.准备接口配置信息 A.服务器URL 该URL用于开发者接 ...

  5. 处理化学SDF文件出现乱码的解决经验

    近期,在VS2019中用WTL编写一个处理化学SDF文件的程序,遇到多处数据出现乱码的问题,典型一处情况如下:在原始SDF文件的一个字段中,有个形如下面的文字信息: https://product.p ...

  6. Linux 13 配置服务自启动

    参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 准备 我们通常的 ...

  7. Java注解最全详解(超级详细)

    Java注解是一个很重要的知识点,掌握好Java注解有利于学习Java开发框架底层实现.@mikechen Java注解定义 Java注解又称Java标注,是在 JDK5 时引入的新特性,注解(也被称 ...

  8. Shell 脚本报错 line x: [xxx: command not found

    [root@VM-0-6-centos sh_scripts]# bash val.sh username: hello world! val.sh: line 5: [hello: command ...

  9. Excel 运算符(四):引用运算符

    引用运算符用于将单元格区域合并运算,包括:冒号.,逗号. 空格. : 运算 :运算符用于定义一个连续的数据区域,例如"A1:B3",表示从 A1 到 B3 的 6 个单元格. 并集 ...

  10. 一个监控工具monit

    最近看了一个问题,monit监控在读取配置文件之后,访问的文件是残留在容器中的,导致认为服务异常,其实一开始容器启动,并没有对应的服务. [root@10-36-235-119.fin-wealth- ...