如何在Hashmap值中检查子字符串

Son*_*ony 1 java hashmap

我有一个HashMap<String, String>

map= {john=a024600000372TPAAY, Jam=Jam is not recognized, Dave=a024600000A1ndhAAB}
Run Code Online (Sandbox Code Playgroud)

我想查找我的哈希图是否具有“未识别”子字符串的任何值。

当我尝试map.containsValue("not recognized")它返回false时,因为它正在寻找“无法识别”的值,但是我应该找到一种检查子字符串的方法。

map.containsValue("not recognized")
Run Code Online (Sandbox Code Playgroud)

Adi*_*tya 5

除了遍历所有值之外,没有其他好方法。最短的方法可能是使用流

map.values().stream()
            .filter(e -> e.contains("not recognized"))
            .findFirst()
            .orElse(null);
Run Code Online (Sandbox Code Playgroud)

如果匹配则返回值,否则返回null。

  • 您可能需要包括一个默认值,因为如果不存在“无法识别”,则您的方法将引发异常。代替`get()`,而是使用`orElse()`。 (2认同)