重写name的hashcode()和equals()方法
package com.imooc.collection;import java.util.HashSet;
import java.util.Set;
/*** 学生类* @author Monica**/public class Student {public String id;public String name;public Set<Course> courses;public Student(String id,String name){this.id = id;this.name = name;this.courses = new HashSet<Course>();//set接口调用}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (!(obj instanceof Student))return false;Student other = (Student) obj;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}}

  • 1
package com.imooc.collection;import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;public class MapTest {/*** 用来承装学生类型对象* @param args*/public Map<String,Student> students;/*** 在构造方法中初试化students属性* @param args*/public MapTest(){this.students = new HashMap<String,Student>();}/*** 测试添加:输入学生ID,判断是否被占用* 若未被占用,则输入姓名,创建新学生对象,并且添加到students中* @param args*/public void testPut(){//创建一个Scanner对象,用来获取输入的学生ID和姓名Scanner console = new Scanner(System.in);int i = 0;while (i<3){System.out.println("请输入学生ID:");String ID = console.next();//判断该ID是否被占用Student st = students.get(ID);if(st==null){System.out.println("请输入学生姓名:");String name = console.next();//创建新的学生对象Student newStudent = new Student(ID,name);//通过调用students的put方法,添加ID-学生映射students.put(ID, newStudent);System.out.println("成功添加学生:"+students.get(ID).name);i++;}else{System.out.println("该学生ID已被占用!");continue;}}}/*** 测试Map中是否包含某个Key值或value值*/public void testContainsKeyOrValue(){//提示输入学生idSystem.out.println("请输入要查询的学生ID:");Scanner console = new Scanner(System.in);String id = console.next();//在Map中,用containsKey()方法,来判断是否包含某个Key值System.out.println("您输入的学生ID为:"+id+",在学生映射表中是否存在:"+students.containsKey(id));if(students.containsKey(id))System.out.println("对应的学生为:"+students.get(id).name);//提示输入学生姓名System.out.println("请输入要查询的学生姓名:");String name = console.next();//在containsValue()方法,来判断是否包含某个Value值if(students.containsValue(new Student(null,name)))System.out.println("在学生映射表中,确实包含学生:"+name);elseSystem.out.println("在学生映射表中不存在该学生!");}/*** 测试Map的keySet方法* @param args*/public void testKeySet(){//通过keySet方法,返回Map中的所有“键”的Set集合Set<String> keySet = students.keySet();//取得Map的容量,调用set方法System.out.println("总共有"+keySet.size()+"个学生");//通过遍历KeySet对象,取得每一个键,在调用get方法取得每个键对应的valuefor(String stuId:keySet){Student st = students.get(stuId);if(st!=null)System.out.println("学生:"+st.name);}}/*** 测试删除Map中的映射* @param args*/public void testRemove(){//获取从键盘输入的待删除学生Id字符串Scanner console = new Scanner(System.in);while(true){//提示输入待删除的学生的ID System.out.println("请输入要删除的学生ID!");String ID = console.next();//判断该ID是否有对应的学生对象Student st = students.get(ID);if(st==null){//提示输入的ID并不存在System.out.println("该ID不存在!");continue;}else{students.remove(ID);System.out.println("成功删除学生:"+st.name);break;}}}/*** 通过entrySet方法来遍历Map* @param args*/public void testEntrySet(){//通过entrySet方法,返回Map中的所有键值对Set<Entry<String,Student>> entrySet = students.entrySet();for(Entry<String,Student> entry:entrySet){System.out.println("取得键:"+entry.getKey());System.out.println("对应的值为:"+entry.getValue().name);}}/*** 利用put方法修改Map中已有映射* @param args*/public void testModify(){//提示输入要修改的学生IdSystem.out.println("请输入要修改的学生ID:");//创建一个Scanner对象,去获取从键盘输入的学生ID字符串Scanner console = new Scanner(System.in);while(true){//取得从键盘输入的学生IDString stuID = console.next();//从students中查找该学生ID对应的学生对象Student student = students.get(stuID);if(student == null){System.out.println("该ID不存在!请重新输入!");continue;}//提示当前对应的学生对象的姓名System.out.println("当前该学生ID,所对应的学生为:"+student.name);//提示输入新的学生姓名,来修改已有的映射System.out.println("请输入新的学生姓名:");String name = console.next();Student newStudent = new Student(stuID,name);students.put(stuID, newStudent);System.out.println("修改成功!");break;}}public static void main(String[] args) {// TODO Auto-generated method stubMapTest mt = new MapTest();mt.testPut();mt.testKeySet();//mt.testRemove();//mt.testEntrySet();//mt.testModify();//mt.testEntrySet();mt.testContainsKeyOrValue();}}

判断 Map 中是否包含指定的 key 和 value相关推荐

  1. php判断数组中的键是否是某个字符串,php判断数组中是否存在指定键(key)的方法...

    搜索热词 本文实例讲述了PHP判断数组中是否存在指定键(key)的方法.分享给大家供大家参考.具体分析如下: PHP中有两个函数用来判断数组中是否包含指定的键,分别是array_key_exists和 ...

  2. php 存在键,php判断数组中是否存在指定键(key)的方法

    本文实例讲述了php判断数组中是否存在指定键(key)的方法.分享给大家供大家参考.具体分析如下: php中有两个函数用来判断数组中是否包含指定的键,分别是array_key_exists和isset ...

  3. 判断字符串中是否包含指定字符(JavaScript)

    判断字符串中是否包含指定字符 indexOf() indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置.如果要检索的字符串值没有出现,则返回 -1. search() search( ...

  4. 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。

    一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值        如果包含指 ...

  5. java+map对象判断空值_java判断map中是否存在指定对象

    Map判断是否包含指定的value使用containsValue方法.(推荐:java视频教程) 定义 containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则 ...

  6. jsoncpp判断Value中是否含有指定的key

    方法1:使用Json::Value自带的函数,强烈推荐 bool HasMember1(Json::Value& value, string key) {return value.isMemb ...

  7. 判断字符串中是否包含指定字符的N种方法对比

    方法一 var str ="abc"; if(str.indexOf("bc")!=-1){// !=-1含有 ==-1不含有 } 方法二 var str =& ...

  8. java判断字符串中是否包含某个字符

    1 使用String类的contains()方法 contains()方法用于判断字符串中是否包含指定的字符或字符串.语法如下: public boolean contains(CharSequenc ...

  9. containskey java_Java Map.containsKey()方法:判断Map集合对象中是否包含指定的键名

    搜索热词 Java 集合类中的 Map.containsKey() 方法判断 Map 集合对象中是否包含指定的键名.如果 Map 集合中包含指定的键名,则返回 true,否则返回 false. 语法: ...

最新文章

  1. H3C Boot升级 Serial模式
  2. 字节面试现场,问我如何高效设计一个LRU
  3. 服务器维护,日志分析常用命令
  4. vector的去重操作
  5. 将 Visual Studio 的代码片段导出到 VS Code
  6. 自建CDN Xnign产品指标
  7. 台大陈蕴侬、李宏毅“应用深度学习”课程(国语)
  8. azure不支持java1.9_java – 无法将Spring Boot应用程序部署到Azure
  9. 电子设计大赛简易自动入库小车设计
  10. PS——图像合成与渐变工具
  11. 用对分法求解方程x^3-x^2-x-1=0
  12. Armbian安装Docker之后的100种玩儿法《动态域名解析DDNS自动更新》
  13. visio 怎么画直线
  14. a推b等价于非a或b_手机系统将有A/B分区?Android 11这些变化你关注过吗
  15. 基于CORBA规范的中间件——CORBA基本原理
  16. UE4开发PSVR游戏流程
  17. reduce()方法使用详解
  18. java 图片 rgb_简单的java图片处理——如何用Java读出一张图片的RGB值?
  19. qt 容器组控件 Containers
  20. HTTP 升级到 HTTPS 基础知识详解

热门文章

  1. Android笔记(十)ListView
  2. ONVIFclient搜索设备获取rtsp地址开发笔记(精华篇)
  3. WPF 用Main函数方式启动程序
  4. 转:Android应用开发性能优化完全分析
  5. LVS_TUN 实验
  6. 因严重缺陷,Rust 撤销所有 Crates 包的 API 令牌
  7. Mysql解决存入表情报错的问题,调整编码为utf8mb4
  8. Android:ListView的拓展与进阶
  9. live555学习之基本类介绍及计划任务深度探讨
  10. easyUI根据参数动态的生成列数