之前学了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; }
}

最新文章

  1. Windows10环境搭建Elasticsearch+Kibana+Marvel
  2. 《App研发录》知识点汇总
  3. WP8_区分滑动和点击(在图片列表中)
  4. hdu 4352 XHXJ&#39;s LIS 数位DP
  5. Informatica9.6.1在Linux Red Hat 5.8上安装遇到的有关问题整理_3
  6. Axure RP 8.0 中继器初体验
  7. springmvc+mybatis+spring 整合 SSM
  8. 《Mastering Opencv ...读书笔记系列》车牌识别(II)
  9. 关联查询一张小表。对性能有影响吗(mysql)
  10. Deploy .Net project automatically with MsBuild and MsDeploy (1)
  11. rsyslogd以及日志轮替logrotate的梳理
  12. Linux Centos 删除除某(多)个文件之外的所有文件
  13. 使用 Topshelf 创建 Windows 服务
  14. MySQL:explain 和 慢查询日志
  15. 数据库设计---PowerDesigner(物理模型和概念模型)
  16. mysql 和php 保留2位小数
  17. MD5、SHA1加密java 16位32位
  18. Linux文件系统命令 ln
  19. (转)nginx+iis实现负载均衡
  20. 跨域方法:JSONP、iframe

热门文章

  1. CSS样式快速入门
  2. 万答#18,MySQL8.0 如何快速回收膨胀的UNDO表空间
  3. ahooks 中那些控制“时机”的hook都是怎么实现的?
  4. FTP 基础 与 使用 Docker 搭建 Vsftpd 的 FTP 服务
  5. CLIP:多模态领域革命者
  6. Spring 03: 基于xml的构造方法注入
  7. CSS 标签、类名和ID选择器有空格和没有空格的区别
  8. 使用JMeter测试.Net5.0,.Net6.0框架下无数据处理的并发情况
  9. 基于ASP.NET Core 6.0的整洁架构
  10. 简单创建一个SpringCloud2021.0.3项目(四)