我有一张 map 如下:
final Map<myobj,Set<String>> existingNames = this.getExistingCIs(_actual,_names.keySet());
它返回:
{myobj43c0e17f0100000606@3508cfdf=[Immutable]}
我正在尝试检查映射值是否包含字符串“Immutable”,然后我正在尝试做进一步的逻辑。但是existingNames.containsValue("Immutable")
抛出 false
:
if (existingNames.containsValue("Immutable")) {
// mylogic
}
是不是因为Set<String>
?如果是这样如何检查这个?我想我在比较时做错了什么。我只有基本的 Java 知识,不知道如何转换集合来检查字符串。
最佳答案
检查任何集合是否包含值的简单方法是
existingNames.values().stream().anyMatch(s -> s.contains("Immutable"))
如果你想检查集合是否是包含字符串的单例,那么你可以创建一个内联集合:
existingNames.containsValue(Collections.singleton("Immutable"))
关于java - Map.containsValue() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55647143/