> 包含来自 String[] 的所有元素。如何检查?,java,arraylist,collections"/>

首页 > 解决方案 > 列表> 包含来自 String[] 的所有元素。如何检查?

问题描述

我需要检查是否 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));
    }

但也许有更正确的方法来解决我的问题?

标签: javaarraylistcollections

解决方案


流的几种可能性:

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)));

推荐阅读