使用映射执行查找 import java.util.*; 公共类映射查找{ 公共void searchMap(){ 学校x=新学校(“Rybeca”); 映射检查=新建HashMap(); 检查。放置(x,School.createNewStudent(“Joy”); 检查。放置(x,School.createNewStudent(“Bob”); 检查。放置(x,School.createNewStudent(“凯特”); System.out.println(check.containsValue(“Bob”)); } }

使用映射执行查找 import java.util.*; 公共类映射查找{ 公共void searchMap(){ 学校x=新学校(“Rybeca”); 映射检查=新建HashMap(); 检查。放置(x,School.createNewStudent(“Joy”); 检查。放置(x,School.createNewStudent(“Bob”); 检查。放置(x,School.createNewStudent(“凯特”); System.out.println(check.containsValue(“Bob”)); } },java,Java,当我尝试执行查找时,它会返回一个错误的表达式对于您来说,返回的是true import java.util.*; public class MapLookup { public void searchMap(){ School x = new School("Rybeka"); Map<School,School.Student> check = new HashMap<School,School.Student>();

当我尝试执行查找时,它会返回一个错误的表达式

对于您来说,返回的是
true

import java.util.*;

public class MapLookup {

    public void searchMap(){

        School x = new School("Rybeka");

        Map<School,School.Student> check = new HashMap<School,School.Student>();

        check.put(x,School.createNewStudent("Joy"));
        check.put(x,School.createNewStudent("Bob"));
        check.put(x,School.createNewStudent("Kate"));

        System.out.println(check.containsValue("Bob"));
    }
}
因为这是您最后在映射中作为
value
放置的对象,它将覆盖映射到同一键的其他值


注意:这是假设
School.createNewStudent(“Kate”)
将返回重写
对象的类的对象。等于
以使用该“Kate”参数。

您正在检查
Student
映射是否包含
字符串
“Bob”是字符串,映射将学生作为值。“Bob”是一个字符串,映射将学生作为值。您对所有3个put语句使用相同的键,这将返回true
System.out.println(check.containsValue(“Kate”)检查java中地图的基础知识。@dkb我认为这不是真的。试着输入代码,看看它的行为是否符合您的预期。@RalfKleberhoff是的,您是对的。巧合的是,我在你发表评论时进行了编辑。我们俩的想法是一致的。谢谢你的输入。非常感谢,你是对的,我用的是字符串对象而不是学生。
System.out.println(check.containsValue(School.createNewStudent("Kate")));