Java 8 - 返回列表(键集),与List <Map.Entry <Integer,CheckBox >>相对

Bis*_*128 6 java vaadin java-8

我试图使用java 8返回一个键值(整数)列表,其中检查值(复选框).我想要处理的地图是以下形式.

Map<Integer, CheckBox> 
Run Code Online (Sandbox Code Playgroud)

目的是返回选中复选框值的所有值的键集.

如果我做以下事情

checkBoxes.entrySet().stream().filter(c -> c.getValue().getValue())
                .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

然后我回来了a List<Map.Entry<Integer, CheckBox>>无论如何要在一行中完成这一切而不处理Map.Entry值所以我可以得到一个整数列表?

谢谢

Era*_*ran 8

您可以添加一个map调用以从条目中提取密钥:

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