java - 如何从 Map<Key,List<Value>> 获取 List<Value>

标签 java dictionary

从 map 获取包含所有 map 值的新列表的最佳方法是什么?

这是正确的吗?

List<Value> listValues = new ArrayList<>();
for(TypeKey keys : map.keySet()){
 for(TypeValue values : map.get(keys)){
  listValues.add(values);
 }
}

最佳答案

如果您有 Map<Key, Value>Map#values()方法会给你一个Collection<Value> .

对于Map<Key, List<Value>>values()显然,方法会给你一个 Collection<List<Value>>可以展平:

List<Value> values = map.values().stream()
                                 .flatMap(List::stream)
                                 .collect(Collectors.toList());

关于java - 如何从 Map<Key,List<Value>> 获取 List<Value>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44342942/

相关文章:

haskell - 对元组内的两个列表中的对应对求和 - 在 Haskell 中

python - Ruby 中的哈希值并将 python 转换为 ruby

java - 如何制作一个可以在一定时间内运行的演示应用程序?

Java-从数组方法返回一个数组到Main函数

python - 在 Python 中根据键匹配解压字典列表

arrays - Swift:检查数组的字典对象类型

python - 按照键到键映射转换 Python 字典键

java - 使用 Hibernate 5 和 JPA 连接到 MySQL 服务器时出错

java - SimGrid 中的 send 和 dsend 有什么区别吗?

java - 我如何将我的资源放入多模块 Web 项目中已部署的 WAR 中