java - 列表
问题描述
我需要检查是否 List<Map<String, String>>
包含来自String[]
.
我这样解决了这个问题:
private boolean method(List<Map<String, String>> listWithMaps, String[] conditions){
List<String> list = new ArrayList<>();
for (Map<String, String> mapFromList : listWithMaps) {
list.add(mapFromList.get("CAUSE"));
}
return list.containsAll(Arrays.asList(conditions));
}
但也许有更正确的方法来解决我的问题?
解决方案
流的几种可能性:
listWithMaps.stream().map(map -> map.get("CAUSE")).collect(toSet()).containsAll(Arrays.asList(conditions));
和
Arrays.stream(conditions)
.allMatch(condition -> listWithMaps.stream().anyMatch(map -> map.get("CAUSE").equals(condition)));
推荐阅读
- c++ - Picam 落后 5 帧,使用 OpenCV (C++)
- wso2esb - java.lang.ClassNotFoundException:synapse-core_2.1.7.wso2v7 找不到 xyzBasicAuthHandler
- php - php 将 POST['integer string'] 与数据库中的整数进行比较
- shell - 扫描文件的每一行并查找匹配 (|##|) ,如果找到,则在下一行前面添加双引号
- python - Python - 使用排序操作列和行 - 重塑
- jquery - Mmenu Wordpress 插件问题 - 菜单只打开一次
- string - 将两个文本字符串与选项严格分开
- r - R为非数字参数应用中断
- wso2 - 使用 rest api 创建 wso2 应用程序,
- mysql - 从字符串中删除破折号和前导零