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

JAVA如何迭代映射的映射中的值

颛孙凯定
2023-03-14

我有我创建的地图的地图

map >doubleMap=new hashmap<>();

我尝试在第二个映射中迭代键的值。

所以它可以是这样的:

key1->keya->value1

-------->键->值2

-------->键->值4

-------->KeyC->value1

我想继续多久就继续多久。

因此,我有mainValue=“value2”,并尝试使用名为ThisValue的值变量和增量计数器ifThisValue.equals(mainValue)来循环DoubleMap中的所有值

我不知道如何获得thisvalue。我试着这样做

ThisValue=DoubleMap.Get(currentNumKey).KeySet().ToArray()[counter]

但这给了我信笺。

如果我执行thisvalue=doubleMap.get(currentNumKey).get(currentLetterKey),它会给出我想要的正确值,但我不能迭代所有值

谢谢你

共有1个答案

孟英锐
2023-03-14
Map<String, Map<String, String>> nestedMap = new HashMap<>();
nestedMap.put ... 

重命名(doubleMap是非常误导的),并指出创建一个空的单独映射是不行的。

现在您可以像下面这样迭代您的映射:

for (Entry<Map<Map<String, String>>> outer : nestedMap.entrySet) {
  outer.getKey() ... would be "Key1"
  outer.getValue() ... represents that inner map

对于内循环来说,这是非常相同的;这意味着可以对outer.getValue()返回的值使用for-each和entrySet()。

 类似资料:
  • 我有以下代码: 如果我想迭代Map,上面的代码工作得很好。但是现在我有这样的东西。 我想在映射中遍历映射,并获取它的键和值。我想得到key1、value1、key2、value2、key3、value3的值,依此类推。那我该怎么做呢?

  • 我有两个地图,键为整数,值为双倍。 我想创建第三个按键排序的映射,值将是两个映射的双精度列表。 地图1: Map2: 最终地图: 如上所述,如果一个地图中的一个键在另一个地图中丢失,则另一个地图的最终地图中的值应默认为0.00 我可以使用putAll方法将所有键放入第三张地图。但如何按照我的意愿设定这些值呢? 感谢阅读!

  • 本文向大家介绍C++映射迭代器,包括了C++映射迭代器的使用技巧和注意事项,需要的朋友参考一下 示例 容器中第一个元素的迭代器。 如果映射对象是const限定符,则该函数返回const_iterator。否则,返回iterator。 输出: a => 200 b => 100 c => 300

  • 提示:如果已知失败的表达式在法律上为null/missing,可以使用myoptionalvar!mydefault指定默认值,或者使用<#If myoptionalvar??>when-present<#else>when-missing。(这些只覆盖表达式的最后一步;要覆盖整个表达式,请使用parenthessis:(myoptionvar.foo)!mydefault,(myoptionva

  • 我在迭代一个对象内的列表时遇到了一个问题,该对象内嵌在另一个映射中。我的目标是迭代这个列表并生成一个映射 ,我希望使用streams和lamdas来实现这一点。 我在上面看到了,我需要通过迭代FolderBo中的elementList从elementBo创建一个带有map 的映射。folderBo本身就在Modelbo的地图内。

  • 我有一个实体,看起来像这样: 输入数据是一个