当前位置: 首页 > 知识库问答 >
问题:

如何从另一个映射对象 Java 中提取映射对象

辛建业
2023-03-14

我有以下数据结构:

<代码>地图

我想从这个复杂的 Map 对象中提取它的值(它本身是另一个字符串 Map)。我目前正在这样做:

Map<String, Map<String, String>> map = getStructure(data,format);
Map<String,String> newMap = new LinkedHashMap<String, String>();

for(Entry<String, Map<String,String>> entry : map.entrySet()) {
    for (Entry<String, String> value : entry.getValue().entrySet()) {
        newMap.put(value.getKey(),value.getValue());
    }
}

上面的实现给了我一个新的Map对象,由于外部Foreach循环,它正在迭代。似乎我错过了什么。

如何从复杂的 Map 对象中提取内部 Map 对象?

编辑:

回应AlexWien的评论

原始数据结构:

原始数据结构背后的原因是为一对id(ID1和ID2)存储一个值。ID1和ID2可以不同。所以它的结构是:

<代码>地图

我试图实现的是获取每个值的id对(ID1和ID2)的完整列表。这样我就可以将它们存储在数据库中以跟踪航空信息。

共有1个答案

宰父才
2023-03-14

有地图的:

Map<String, Map<String, String>> map

您只需调用 get 即可获得内部地图

String key = ...;  // TODO
Map<String, String> innerMap = map.get(key);

更新您的编辑:
您似乎还需要一张类似于配对图的东西:

Map<String, Pair<String, String>> mapOfPairs.

不幸的是,java没有Pair类。所以自己写一个:

public class Pair {
  String id1;
  String id2;
}

并有一个

Map<String, Pair> mapOfPairs;
 类似资料:
  • 下面是Main中的随机客户端列表 第二类:产品(字符串名称、枚举类别、BigDecimal价格) 目标->预期结果:在类Main中,创建类Shopping的实例,其中属性是具有 的映射,并用随机数据//integer-购买了多少产品 null null

  • 假设我有这样的映射: 现在,我需要将子列表映射到子列表,但它们都有相同的父对象。我希望这样做: 但不管用,有机会做吗?

  • 我必须用不同的键和值将rest模板响应映射到我的DTO。目前我正在从rest api获得这个json响应 我想将其映射到我的 DTO 中,以便能够保存到数据库中 我想要的是只获得相同的动态密钥,以匹配上述api的响应。目前我正在这样做,但似乎我没有设置相同键的正确值。 执行此操作后,我的数据库中出现空值。

  • 我使用此链接中的以下代码为我的一个数据模型类(JSON到JAXB模型的转换)添加自定义反序列化程序。 我想使用com。fasterxml。杰克逊。jaxrs。json。JacksonJaxbJsonProvider,用于其他数据模型的JSON序列化/反序列化。 JacksonJaxbJsonProvider的默认实现非常适合我的JAXB模型,将超类作为抽象类。但是,一旦我提供了自己的自定义Obje

  • 问题内容: 我们有一张有很多列的大桌子。移至MySQL Cluster后,由于以下原因无法创建表: 错误1118(42000):行大小太大。不包括BLOB在内的已使用表类型的最大行大小为14000。这包括存储开销,请查阅手册。您必须将某些列更改为TEXT或BLOB 举个例子: 这是用于存储配置参数的表。我在想,我们可以将一些列合并为一个列,并将其存储为JSON对象,然后将其转换为Java对象。 例

  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误: