问答详情
源自:6-4 学生选课---判断 Map 中是否包含指定的 key 和 value

想问一下,为什么在用id和name查找的时候用的方法有这样的区别呢?

用id查找学生

//提示用户输入学生id

System.out.println("请输入要查询的学生ID:");

Scanner Input = new Scanner(System.in);

String id = Input.next();

//在Map中,用containsKey()方法,判断是否包含某个Key值 

System.out.println("您输入的学生id为:"+id+"在映射表中是否存在"+students.containsKey(id));

用姓名查找

//提示输入学生姓名

System.out.println("请输入要查询的学生姓名:");

Scanner Input2 = new Scanner(System.in);

String name = Input2.next();

//        用containsValue()方法,判断是否包含某个Value值

System.out.println("您输入的学生姓名为:"+name+"姓名是否存在"+students.containsValue(name));

为什么这里name明明对象里是有的却还是返回false呢? 求解答


提问者:許尔摩斯_ 2019-07-22 11:13

个回答

  • 灵谷鱼
    2019-07-22 14:40:06

    因为:public Map <String,Student>students;该属性的value值是一个Student类型的对象,那使用containsValue()传入的参数要是对应的value,在这里value对应的就是一个Student 对象。

  • 許尔摩斯_
    2019-07-22 11:17:36

    为什么判断是否包含某个value值要new一个学生对象呢