【发布时间】:2018-11-15 23:37:20
【问题描述】:
在 Java 7 中我有
Map<String, List<String>> m = new HashMap<String, List<String>>();
boolean result = false;
m.put("Name1", Arrays.asList("abc*1"));
m.put("Name2", Arrays.asList("abc@*1"));
for (Map.Entry<String, List<String>> me : m.entrySet()) {
String key = me.getKey();
List<String> valueList = me.getValue();
if (key.equals("Name2"){
System.out.print("Values: ");
for (String s : valueList) {
if(s.contains("@"){
result = true;
}
}
}
}
如果 Name2 包含 @ 使用任何匹配项,我如何才能得到它的布尔结果?
我尝试使用以下代码,但我不知道如何将 IT 用于特定键
result = m.values().stream().anyMatch(v -> v.contains("@"))
【问题讨论】:
-
您的意思是
if(s.contains("@"))? (双引号,不是双撇号) -
你有
If代表if和''(两个撇号)而不是"。这段代码应该是可编译的吗?
标签: java list dictionary java-8 java-stream