从 Java 中的双端队列获取映射键列表

Get a list of map keys from a deque in Java

我有一个双端队列

Deque<Map<int, String> cars = new LinkedList();

我想使用 Java 流将双端队列映射中的所有键收集到

List<int>. 

有什么办法吗?

我试过

cars.stream().map(car -> car.keySet()).collect(Collectors.toList()

这个问题和上一个问题不一样。我想收集所有键,而不是从双端队列中删除映射。

使用flatMap():

cars.stream()
    .map(Map::keySet)
    .flatMap(Set::stream)
    .collect(Collectors.toList())

您可以 flatMap 地图的键:

List<Integer> keys =
    cars.stream().flatMap(car -> car.keySet().stream()).collect(Collectors.toList());