之前学了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. 关于canvas的图片获取及python处理

    获取canvas图片的对应base64的uri(echart图.v-chart图 canvas元素.toDataURL()获取对应canvas的base64 uri的链接 前端处理生成的uri,可以生 ...

  2. CSp2021/ NOIp2021 游记

    目录 Part 1. CSp2021 J S Part 2. NOIp2021 总结 Part 1. CSp2021 J 好水 挂飞 239pts,1= S 好毒瘤 rnm,写了个暴力就去搞 T2 \ ...

  3. 函数,递归以及dom简单操作

    函数 函数概述 函数就是具备某个功能的一个工具.是完成某个功能的一段代码. 系统提供了很多函数,但是并不能包含所有的功能,所以有些功能需要我们自己来写----自定义函数.函数定义好以后,就可以像系统函 ...

  4. WPF 截图控件之移除控件(九)「仿微信」

    WPF 截图控件之移除控件(九)「仿微信」 WPF 截图控件之移除控件(九)「仿微信」 作者:WPFDevelopersOrg 原文链接: https://github.com/WPFDevelope ...

  5. HTML5 基础学习

    HTML 基础学习 参考资料 视频课程:https://www.bilibili.com/video/BV14J4114768 W3C文档:https://webplatform.github.io/ ...

  6. MySQL查询性能优化七种武器之索引潜水

    有读者可能会一脸懵逼? 啥是索引潜水? 你给起的名字的吗?有没有索引蛙泳? 这个名字还真不是我起的,今天要讲的知识点就叫索引潜水(Index dive). 先要从一件怪事说起: 我先造点数据复现一下问 ...

  7. 开源图编辑库 NebulaGraph VEditor 的设计思路分享

    本文首发于 NebulaGraph 公众号 NebulaGraph VEditor 是一个拥有高性能.高可定制的所见即所得图可视化编辑器前端库. NebulaGraph VEditor 底层基于 SV ...

  8. 生成 SSH 公钥

    什么是 SSH 一般的网络服务程序,如FTP.PoP和TelNet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务程序的安全验证 ...

  9. [CF1525D] Armchairs (DP / 模拟费用流)

    题面简述 一条线上等距地分布着 n n n 老鼠和 m m m 洞( m ≥ n m\geq n m≥n),这连续 n + m n+m n+m 个位置上要么是老鼠要么是洞,一个老鼠进一个洞,代价是所有 ...

  10. QQ高级功能

    本篇文章为微信公众号:酿俗 教学内容请跟着小编一起探索吧! 第一步解锁微信豆影藏内容 随后下载需要的材料,注意!手机可能会提示有病毒!这里使用这些功能报病毒很正常 其实并没有病毒只是手机厂商的安全系统 ...