Java 8-список возврата (набор ключей), противоположный списку>

Я пытаюсь использовать java 8, чтобы вернуть мне список ключевых значений (целых чисел), в котором проверяется значение (флажок). Карта, которую я пытаюсь обработать, имеет следующую форму.

Map<Integer, CheckBox> 

цель состоит в том, чтобы вернуть набор ключей для всех значений, где флажок значение.

Если я сделаю следующее

checkBoxes.entrySet().stream().filter(c -> c.getValue().getValue())
                .collect(Collectors.toList());

тогда я возвращаюсь List<Map.Entry<Integer, CheckBox>> есть ли в любом случае, чтобы сделать это все в одной строке без обработки карты.Значения ввода, поэтому я могу просто получить список целые числа?

спасибо

1 ответов


вы можете добавить map вызов для извлечения ключа из записи :

List<Integer> keys = checkBoxes.entrySet().stream()
            .filter(c -> c.getValue().getValue())
            .map(Map.Entry::getKey)
            .collect(Collectors.toList());