Java 8 - 返回 List (keyset) 而不是 List<Map.Entry<Integer, CheckBox>>

6

我正在尝试使用Java 8返回一个键值(Integers)列表,其中值(Checkbox)被选中。我要处理的映射具有以下形式。

Map<Integer, CheckBox> 

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

如果我执行以下操作

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

然后我会得到一个List<Map.Entry<Integer, CheckBox>>,有没有一种方法可以在不处理Map.Entry值的情况下在一行中完成所有操作,以便我只能获取整数列表?

谢谢

1个回答

9
您可以添加一个map调用来从条目中提取键:
List<Integer> keys = checkBoxes.entrySet().stream()
            .filter(c -> c.getValue().getValue())
            .map(Map.Entry::getKey)
            .collect(Collectors.toList());

完美-非常感谢您。看起来我需要离开并进一步学习,因为我不知道可以这样做。谢谢。 - Biscuit128

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接