检查字符串是否存在于List<Map<String, String>>中

3

如果我有一个像这样的tempNameMapList对象:List<Map<String, String>>

0
   0 = "id" -> 101
   1 = "name" -> jonathan
1
   0 = "id" -> 102
   1 = "name" -> sam
2
   0 = "id" -> 103
   1 = "name" -> tim

如果有一个像String name = "tim"这样的字符串对象,我该如何快速检查它是否存在于tempNameMapList中?


4
你为什么要使用地图而不是自定义对象? - user902383
@RAZ_Muh_Taz 请查看更新的问题。希望它能增加一些清晰度。 - methuselah
你是想要检查 tempNameMapList 中是否仅存在值为 "tim" 的项目,还是想确保具有“name”键的映射具有值为“tim”? - RAZ_Muh_Taz
理想情况下,后者更为具体。 - methuselah
2个回答

9

使用Java 8的一种可能的解决方案是anyMatch(...)

boolean exists = tempNameMapList.stream().anyMatch(map -> map.containsValue("tim"));

3
如果您使用的是Java 8,您可以使用anyMatch方法。如果找到了匹配项,则返回true,否则返回false
String name = "tim";
boolean check = tempNameMapList.stream()
        .flatMap(a -> a.values().stream())
        .anyMatch(name::equals);

在问题中添加了键值...这会改变你的答案吗? - methuselah
不,它不会。 - Youcef LAIDANI
你可以在 anyMatch 中使用 lambda 表达式:.anyMatch(name::equals) - Anton Balaniuc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接