java - Map.containsValue() 返回 false

标签 java string collections set contains

我有一张 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/

相关文章:

python - 从集合模块应用计数器后访问列表的内容

java - 为什么在jsp中上传文件后无法访问请求中的参数?

string - 确保字符串数字操作与文化无关

c++ - 没有优先级且左结合的字符串计算器

php - 当需要一行时,laravel eloquent hasmany 关系返回

java - 有任何集合对象可以保存两个以上元素的组合列表吗?

java - 需要一个正则表达式来提取字符串的子字符串

java - Libgdx scene2d uiskin.json com.badlogic.gdx.utils.GdxRuntimeException

带有类名到类的Java字符串

python - 带有列表的列中按字符串的 pandas df 子集