Список > содержит все элементы из String []. Как это проверить? - PullRequest
0 голосов
/ 28 февраля 2020

Мне нужно проверить, что 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));
    }

Но, может быть, есть более правильный способ решения моей проблемы?

1 Ответ

0 голосов
/ 28 февраля 2020

Пара возможностей с потоками:

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)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...