编写一个遍历 Map 的方法,查找包含值的 Object 条目,将此 Object 添加到一个新集合,然后 returns 该集合

Writing a method that itterates over a Map, looks for Object entries that contain a value, adds this Object to a new set then returns that set

我正在学习如何在 Java 中编写代码,并且在这个概念上苦苦挣扎。 我需要编写一个方法,该方法采用一个 char 参数,该参数存在于地图中的对象中。

它需要 return 一个当前不存在的包含此 char 值的对象集作为一个新的集,在遍历地图以找到这些对象后。

以下是我当前的代码,它没有得到我想要的结果,我相信问题出在 if 语句中。我在对象和地图上做了很多 equals()containsValue 的不同组合,但似乎无法达到 return true。

public Set findObj(char aChar)
{
    Set<String> objSet = new HashSet();

    for (Object Obj: map1.values())
    {  
       if (map1.values().contains(aChar))
       {
           //if true add to objSet
       }
    }

    return objSet;
}

如果有帮助,地图是

Map<String,Obj> map1= new HashMap<>();

并且该对象由 class 创建并包含 3 个变量、2 个字符串和一个是我试图在地图的每次迭代中找到的 char 值。

你是对的,问题主要出在你的 if 语句中,因为你正在遍历地图中的对象,你应该检查 当前对象 是否包含字符串 not整个地图是否包含它

public Set findObj(char aChar) {
    Set<String> objSet = new HashSet();
    for (Object c : map1.values()) {
        if (c.toString().indexOf(aChar) >= 0) {
            //if true add to objSet
        }
    }
    return objSet;
}