从地图列表中检索所有密钥

问题描述 投票:0回答:2

我在地图列表中存储了一些数据

List<Map<String, Integer>> myList;

有没有一种简单的方法可以获取所有键,而无需逐个元素并调用

keyset()

举例来说,我有一个列表

((Bob, 1), (James, 5))
,其中 Bob 和 James 都是地图中的键,我怎样才能获得仅包含
(Bob, James)
的列表?

java hashmap
2个回答
1
投票

尝试一下这个,尽管它仍然访问列表中的所有元素:

final Set<String> = myList.stream()
  .map( Map::keyset )
  .reduce( new HashSet<String>(), Set::addAll );

1
投票

您可以将

stream
flatMap
一起使用。

示例:

public List<String> getAllInList(){
List<Map<String,Integer>> list = List.of(Map.of("Bob",1), Map.of("James",2));
    return list.stream().map(Map::entrySet).flatMap(Collection::stream).collect(Collectors.toList());
}
© www.soinside.com 2019 - 2024. All rights reserved.