不废话,上代码:

先创建一个Student类:

public class Student {private String id;private String name;private String mobile;private String address;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMobile() {return mobile;}public void setMobile(String mobile) {this.mobile = mobile;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic int hashCode() {return id.hashCode();}@Overridepublic boolean equals(Object obj) {//this指正在试图存入的对象,obj指HashSet中保存的数据if(obj instanceof Student) {Student s = (Student)obj;return this.id.equals(s.id);}return false;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", mobile=" + mobile + ", address=" + address + "]";}}

再创建一个Main方法:

import java.util.HashSet;
import java.util.Scanner;public class Main {private static HashSet<Student> set = new HashSet<Student>();public static void main(String[] args) {System.out.println("*********************************");System.out.println("*\t\t\t\t*");System.out.println("*\t欢迎使用学生信息管理系统\t*");System.out.println("*\t\t\t\t*");System.out.println("*********************************");while (true) {menu();}}static void menu() {System.out.println("1、添加学生信息");System.out.println("2、删除学生信息");System.out.println("3、修改学生信息");//地址传递System.out.println("4、查询学生信息");//nameSystem.out.println("请输入操作,以Enter键结束:");Scanner scanner = new Scanner(System.in);int option  = scanner.nextInt();switch (option) {case 1:{System.out.println("请输入学号:");    String id = scanner.next();System.out.println("请输入姓名:");String name = scanner.next();System.out.println("请输入手机号:");String mobile = scanner.next();System.out.println("请输入家庭地址:");String address = scanner.next();Student student = new Student();student.setId(id);if(set.contains(student)) {//因为已重写了hashCode和equals方法,所以此处contains()方法比较的student中的id号是否相同System.out.println("学号不允许重复");return;}student.setName(name);student.setMobile(mobile);student.setAddress(address);set.add(student);System.out.print("已添加学生的个数:");System.out.println(set.size());System.out.println("添加成功");break;}case 2:{System.out.println("请输入要删除的学生的学号:");String id = scanner.next();Student student = new Student();student.setId(id);if(set.remove(student)) {System.out.println("删除成功");return;}System.out.println("未找到学号为"+id+"的学生,删除失败");break;}case 3:{System.out.println("请输入要修改学生的学号:");String id = scanner.next();Student student = new Student();student.setId(id);if(!set.contains(student)) {System.out.println("没有找到学号为"+id+"的学生,无法修改");return;}for (Student stu : set) {if(stu.getId().equals(id)) {System.out.println("请输入新姓名:");String name = scanner.next();System.out.println("请输入新手机号:");String mobile = scanner.next();System.out.println("请输入新家庭地址:");String address = scanner.next();stu.setName(name);stu.setMobile(mobile);stu.setAddress(address);System.out.println("修改成功");}}break;}case 4:{System.out.println("请输入要查询学生的学号:");String id = scanner.next();Student student = new Student();student.setId(id);if(!set.contains(student)) {System.out.println("没有找到学号为"+id+"的学生");return;}for (Student stu : set) {if(stu.getId().equals(id)) {System.out.println(stu);}}break;}default:System.out.println("I'm Sorry,there is not the "+option+" option,please try again.");}}
}

用Java中的HashSet写一个学生管理系统(添加、删除、修改、查询学生信息)相关推荐

  1. 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽

    最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...

  2. Java中的HashSet

    介绍: Java中的HashSet实现Set接口,即它不允许重复. 它在内部由HashMap支持,该哈希表基于哈希原理. 我们可以在HashSet中存储一个空值. 默认容量为16,负载系数为0.75, ...

  3. java中hashset_Java HashSet – Java中的HashSet

    java中hashset Java HashSet is the most popular implementation of Set interface. java.util.HashSet is ...

  4. 在Java中,如何使一个字符串的首字母变为大写

    问题:在Java中,如何使一个字符串的首字母变为大写 我使用Java去获取用户的字符串输入.我尝试使他们输入的第一个字符大写 我尝试这样: String name;BufferedReader br ...

  5. Java中如何打印出一个数组中所有元素呢?

    转自: Java中如何获取出一个数组中最大元素值呢? 数组简介: 数组(Array)是有序的元素序列.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为 ...

  6. Java中根据对象的一个或多个属性进行排序

    Java中根据对象的一个或多个属性进行排序 使用情景 解决方法:使用一个工具类:ListUtils 具体使用: 创建一个正常实体类,不用实现comparable接口 调用ListUtiles,并用测试 ...

  7. 用Mysql写一个图书管理系统并且可视化

    要用MySQL写一个图书管理系统需要先创建数据库和表,然后编写Java代码进行连接,查询,插入等操作.同时,为了方便用户操作,可以通过可视化工具将数据以表格或者图形的形式展示出来.以下是一个简单的My ...

  8. 用C语言写一个可以选择关卡添加关卡的小游戏,推箱子

    目录 关于用C语言写一个可以选择关卡的小游戏 代码部分 所有代码 Tui_Xiang_Zi.h Tui_Xiang_Zi.cpp 关卡数据 关卡数据规则 思路和建议 建议 警告 关于用C语言写一个可以 ...

  9. c语言学生管理系统常见问题,关于C语言学生管理系统问题

    关于C语言学生管理系统问题 我弄了两天啦~就快疯掉啦~本来那个txt文件还可以储存的~但现在又不能啦~还有那个输出所有学生的信息~我不会弄啊~~望各位达人伸出援手啊~~小弟感激不尽 #include ...

最新文章

  1. spring控制并发数的工具类ConcurrencyThrottleSupport和ConcurrencyThrottleInterceptor
  2. html dom获得父div,获取元素的父div
  3. oracle索引机制
  4. SecureCRT录制的安卓电视切换台脚本
  5. 关于手思3.0 代码规范
  6. c语言四个数找大wxyz,2015年计算机二级《C语言》考试上机测试题(7)
  7. ES6学习(var,let,const区别)
  8. 让人死去活来的cocos2d-x安卓开发环境搭建(windows+eclipse+ndk 不用cygwin)【上图】
  9. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_23-页面查询服务端开发-Service及Controller...
  10. 《近匠》专访机智云 CTO 刘琰——从 0 到 1 开启智能化硬件开发
  11. TeeChart Pro Activex 2022.1/32/64/Crack
  12. 2021年UI设计面试问题及答案解析
  13. Enter的使用计算机,Win7系统下键盘Enter回车键五大功能介绍
  14. C语言程序设计培训视频教程
  15. Android D/dalvikvm : GC_FOR_ALLOC freed
  16. ArcGIS API for JavaScript创建 3D 地图
  17. Efforts should be valuable
  18. 简单免费内网穿透教程,利用树莓派实现低成本建站 无需公网
  19. 面试中遇到的错题(持续更新)
  20. SpringBoot+Vue项目校园商铺系统

热门文章

  1. 面试前赶紧看了5道Python Web面试题,Python面试题No17
  2. 身份证号码对应地区-官方措辞:行政区划代码
  3. Mac 安装SecureCRT
  4. Android开发——布局性能优化的一些技巧(一)
  5. 图论:关于二分图的总结(转载)
  6. slider(滑动条)控件模版,样式--用图片定义控件模版
  7. 2009年国内十强开源CMS排行榜[转]
  8. javascript(js)的小数点乘法除法问题
  9. 从DataView中生成Excel报表的方案(C#)
  10. 如何在域控制器上安装asp.net?