用HashSet模拟实现学生信息管理系统中的增删改查

任务需求:
             用HashSet模拟实现学生信息管理系统中的增删改查。
             往HashSet集合中存入自定对象时,姓名和年龄相同为同一个人,
             属于重复元素,不能加入。
所需知识点:
              1.Set接口的实现类HashSet;
代码如下:

Student.java:

package cn.demo.student;

public class Student {
	private String name ; 
	private int age ;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + age;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	} 
}

Main.java:

package cn.demo.main;

import java.util.HashSet;
import java.util.Scanner;

import cn.demo.student.Student;

public class Main {

	public static void main(String[] args) {

			Demo();
	}

	private static void Demo() {
		HashSet<Student> hs = new HashSet<>() ;
		int newFlag = 0 ;
		while(newFlag==0){
		Show();
		Scanner scr = new Scanner(System.in);
		int number = scr.nextInt() ; 
		if(number==1){
			ADD(hs, scr);
		}else if(number==2){
			Remove(hs, scr);
		}else if(number==3){
			Amend(hs, scr);
		}else if(number==4){
			Refer(hs);
		}else{
			System.out.println("退出!");
			newFlag = 1 ; 
		}
}
	}

	private static void Refer(HashSet<Student> hs) {
		System.out.println();
		System.out.println("--------查询学生信息--------");
		System.out.println("所有学生信息如下:");
		System.out.println("姓名        年龄");
		for (Student student : hs) {
			System.out.println(student.getName()+"        "+student.getAge());
		}
	}

	private static void Amend(HashSet<Student> hs, Scanner scr) {
		System.out.println();
		System.out.println("--------修改学生信息--------");
		System.out.println("请输入所要修改学生的名字:"); 
		String newName = scr.next() ;
		int flag = 0 ; 
		for(Student stu : hs){
			if(newName.equals(stu.getName())){
				System.out.println("输入修改的新名字:");
				String newName1 = scr.next() ;
				System.out.println("输入修改的新年龄:");
				int newAge1 = scr.nextInt() ;
				stu.setName(newName1);
				stu.setAge(newAge1);
				System.out.println("修改成功!");
				flag = 1 ; 
				break ; 
			}
		}
		if(flag==0){
			System.out.println("没有此人!");
		}
	}

	private static void Remove(HashSet<Student> hs, Scanner scr) {
		System.out.println();
		System.out.println("--------删除学生信息--------");
		System.out.println("请输入所要删除学生的名字:"); 
		String newName = scr.next() ;
		int flag = 0 ; 
		for(Student stu : hs){
			if(newName.equals(stu.getName())){
				hs.remove(stu);
				System.out.println("删除成功!");
				flag = 1 ; 
				break ; 
			}
		}
		if(flag==0){
			System.out.println("没有此人!");
		}
	}

	private static void ADD(HashSet<Student> hs, Scanner scr) {
		System.out.println();
		System.out.println("--------添加学生信息--------");
		System.out.println("添加学生信息的数量为:");
		int n = scr.nextInt() ; 
		for(int i=0;i<n;i++){
			System.out.println("学生的姓名为:");
			String name = scr.next() ; 
			System.out.println("学生的年龄为:");
			int age = scr.nextInt() ; 
			hs.add(new Student(name,age));
		}
	}

	private static void Show() {
		System.out.println("--------学生管理系统--------");
		System.out.println("          1.增加");
		System.out.println("          2.删除");
		System.out.println("          3.修改");
		System.out.println("          4.查询");
		System.out.println("          5.退出");
		System.out.println("请输入您的选择:");
	}

}

猜你喜欢

转载自blog.csdn.net/Ameir_yang/article/details/81943407