【问题标题】:How to get a list from nested maps [closed]如何从嵌套地图中获取列表[关闭]
【发布时间】:2021-10-03 10:06:12
【问题描述】:

我有以下地图: Map<String, Map<String, Map<String, Map<String, List<Person>>>>>

我想得到一个List<Person>,这是第四张地图中的值。

如何在 Java 8 中做到这一点,即如何检索最内层映射的值?

【问题讨论】:

  • 那么,只是所有的值?或者更具体的东西?
  • 写一些代码总是好的第一步...
  • 正如@VLAZ 暗示的那样,问题尚不清楚。请edit 发帖并说明您所期望的行为。

标签: java dictionary java-stream


【解决方案1】:

您有多个嵌套映射,因此每次调用 get 都会返回各自的值(这是一个更深的映射)并最终将您带到列表中。为了在空映射中调用方法,请使用Map.getOrDefault() 而不是get()

import static java.util.Collections.emptyList;
import static java.util.Collections.emptyMap;

List myList = myMap
    .getOrDefault("key1", emptyMap())
    .getOrDefault("key2", emptyMap())
    .getOrDefault("key3", emptyMap())
    .getOrDefault("key4", emptyList());

【讨论】:

  • 不鼓励使用纯代码的答案。我们更应该解释这个问题以及如何解决它。
  • 感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 2022-12-12
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 2020-12-31
  • 2020-04-26
  • 2020-06-23
相关资源
最近更新 更多