19.java HashMap 的应用实例

创建一个Studen类

package com.student.cn;


public class Student {

	public int stuNo;
	public String stuName;
	public String stuClass;
	
	public void setStuName(String name)
	{
		this.stuName=name;
	}
	public void setStuNo(int num)
	{
		this.stuNo=num;
	}
	//返回 姓名
	public String getStuName()
	{
		return this.stuName;
		
	}
	//返回学号
	public int getStuNo()
	{
		return this.stuNo;
	}
	
	public Student(int stuNo,String stuName,String stuClass)
	{
//		studentsAll=new HashMap();
		this.stuNo=stuNo;
		this.stuName=stuName;
		this.stuClass=stuClass;
	}
	
	@Override
	public String toString()
	{
		return  "姓名:"+this.stuName+",学号:"+this.stuNo+",班级:"+this.stuClass;
	}
}

创建一个studentServic类

package com.student.cn;

import java.util.ArrayList;
import java.util.HashMap;

import com.collection.HaspMapClass;

   
public class StudentService {


	private HashMap studentsAll=null;
//	private  ArrayList studentsArray=null;
	
	public StudentService()
	{
		studentsAll=new HashMap();
	}
          

	/**
	 * 根据学生的姓名获取学生的信息
	 * @param stuName
	 * @return 学生信息
	 */
	public Student getStuInfoBystuName(String stuName)
	{
		if (studentsAll != null && studentsAll.size()>0) {
			Student stu=(Student)studentsAll.get(stuName);
			return stu;
		}
		return null;
	}
	/**
	 * 根据班级返回 学生集合
	 * @param stuClass
	 * @return
	 */
	public ArrayList getStudentByClass(String stuClass)
	{
		ArrayList result=new ArrayList();
		for(Object key:studentsAll.keySet())
		{
			Student stu=(Student)studentsAll.get(key);
			if (stu.stuClass.equals(stuClass)) {
				result.add(stu);
				
			} 
		}
		return result;
	}
	/**
	 * @param stu
	 */
	public void addStudent(Student stu)
	{
		//向ArrayList 添加学生
//		studentsArray.add(stu);
		studentsAll.put(stu.stuName, stu);
		
	}
	/**
	 * 添加函数的重载
	 * @param stuNo 学号
	 * @param stuName 姓名
	 * @param stuClass 班级
	 */
	public void addStudent(int stuNo,String stuName,String stuClass)
	{
		Student student=new Student(stuNo, stuName, stuClass);
		//调用添加函数
		this.addStudent(student);
	}
	/**
	 * 删除一个学生
	 */
	public boolean deleteStudent(Student stu)
	{
		String stuName=stu.stuName;
		//调用删除方法
		return this.deleteStudent(stuName);
		
	}
	/**
	 * 删除一个学生 (重载)
	 * @param stuName  姓名
	 */
	public boolean deleteStudent(String stuName)
	{
		if (studentsAll != null && studentsAll.size()>0) {
			Student stu=this.getStuInfoBystuName(stuName);
			if (stu ==null) {
				System.out.println(stuName+"该生不存在");
				return false;
			} 
			this.studentsAll.remove(stuName);
			return true;
		}

		return false;
	}
	/**
	 * 修改一个学生信息
	 * @param stu
	 */
	public boolean updateStudent(Student stu)
	{
		if (studentsAll != null && studentsAll.size()>0) {
			String stuName=stu.stuName;
			if (this.studentsAll.get(stuName)==null) {
				System.out.println(stuName+"该生不存在");
				return false;
			} 
			this.studentsAll.put(stuName, stu);
			return true ;
		} 
		return false;
	}
	/**
	 *  修改 学生信息(重载)
	 * @param stuNO 
	 * @param stuName
	 * @param stuClass
	 */
	public boolean updateStudent(int stuNO,String stuName,String stuClass)
	{
		Student stu=new Student(stuNO, stuName, stuClass);
		return this.deleteStudent(stuName);
	}
	


}

创建一个测试类:

package com.student.cn;

import java.util.Scanner;

public class TestClass {

	public static void main(String[] args) {
		//创建studentService 对象
		StudentService stuService=new StudentService();
		System.out.println("初始化信息:");
		Scanner input=new Scanner(System.in);
		//添加5个学生信息
		for (int i = 0; i < 5; i++) {
			System.out.println("请输入姓名:");
			String name=input.next();
			System.out.println("请输入学号:");
			int num=input.nextInt();
			System.out.println("请输入班级;");
			String stuclass=input.next();
			Student stu=new Student(num, name, stuclass);
			
			stuService.addStudent(stu);
		}
		
		System.out.println("请输入要查找的学生姓名:");
		String name=input.next();
		Student stu=stuService.getStuInfoBystuName(name);
		System.out.println(stu);
	}

}


运行结果:

初始化信息:
请输入姓名:
abc
请输入学号:
1
请输入班级;
s1
请输入姓名:
a2
请输入学号:
2
请输入班级;
s2
请输入姓名:
a3
请输入学号:
3
请输入班级;
s3
请输入姓名:
a4
请输入学号:
4
请输入班级;
s4
请输入姓名:
a5
请输入学号:
5
请输入班级;
s5
请输入要查找的学生姓名:
a5
姓名:a5,学号:5,班级:s5


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值