JAVA如何迭代映射的映射中的值
我有我创建的地图的地图JAVA如何迭代映射的映射中的值,java,loops,hashmap,multimap,Java,Loops,Hashmap,Multimap,我有我创建的地图的地图 Map doubleMap=newhashmap() 我尝试在第二个映射中迭代键的值 所以它可以是这样的: Key1->KeyA->value1 |-------->键->值2 |-------->键C->value3 键2->键A->值2 |-------->键->值4 |-------->键C->value1 我想继续多久就继续多久 我想检查map中是否有与其他字符串匹配的值 所以我有了mainValue=“value2”,我尝试在doubleMap中循环所有值,使用
Map doubleMap=newhashmap()代码>
我尝试在第二个映射中迭代键的值
所以它可以是这样的:
Key1->KeyA->value1
|-------->键->值2
|-------->键C->value3
键2->键A->值2
|-------->键->值4
|-------->键C->value1
我想继续多久就继续多久
我想检查map中是否有与其他字符串匹配的值
所以我有了mainValue=“value2”
,我尝试在doubleMap
中循环所有值,使用名为thisValue
的值变量,如果thisValue.equals(mainValue)
我不知道我是如何得到这个值的。我试着这样做
thisValue=doubleMap.get(currentNumKey).keySet().toArray()[计数器]
但这给了我钥匙
如果我做了thisValue=doubleMap.get(currentNumKey).get(currentLetterKey)
它会给我想要的正确值,但我不能迭代所有值
感谢您您可以使用该方法获得地图中所有值的集合。对于doubleMap
,这将为您提供Map
的集合。然后,您可以迭代该集合,对于每个映射
,执行相同的技巧来查找您的值:
for (Map<String,String> map : doubleMap.values()) {
for (String val : map.values()) {
if (mainValue.equals(val)) {
// value was found
}
}
}
for(映射:doubleMap.values()){
for(字符串val:map.values()){
if(mainValue.equals(val)){
//找到值
}
}
}
如果您需要指向该值的键(当然,可能不止一次),那么您需要迭代使用doubleMap
以及为每个键检索的每个Map
获取的键集(或条目集,使用)。循环看起来应该类似。使用该方法可以获得映射中所有值的集合。对于doubleMap
,这将为您提供Map
的集合。然后,您可以迭代该集合,对于每个映射
,执行相同的技巧来查找您的值:
for (Map<String,String> map : doubleMap.values()) {
for (String val : map.values()) {
if (mainValue.equals(val)) {
// value was found
}
}
}
Map<String, Map<String, String>> nestedMap = new HashMap<>();
nestedMap.put ...
for(映射:doubleMap.values()){
for(字符串val:map.values()){
if(mainValue.equals(val)){
//找到值
}
}
}
如果您需要指向该值的键(当然,可能不止一次),那么您需要迭代使用doubleMap
以及为每个键检索的每个Map
获取的键集(或条目集,使用)。循环看起来应该类似。Map nestedMap=new HashMap();
Map<String, Map<String, String>> nestedMap = new HashMap<>();
nestedMap.put ...
nestedMap.put。。。
重命名(doubleMap非常容易引起误解),并指出单独创建一个空映射是不行的
现在,您可以像这样迭代地图:
for (Entry<Map<Map<String, String>>> outer : nestedMap.entrySet) {
outer.getKey() ... would be "Key1"
outer.getValue() ... represents that inner map
for(外部条目:nestedMap.entrySet){
outer.getKey()…将是“Key1”
outer.getValue()…表示该内部映射
对于内部循环,它是非常相同的;这意味着您可以对outer.getValue()返回的值使用each和entrySet();
nestedMap.put。。。
重命名(doubleMap非常容易引起误解),并指出单独创建一个空映射是不行的
现在,您可以像这样迭代地图:
for (Entry<Map<Map<String, String>>> outer : nestedMap.entrySet) {
outer.getKey() ... would be "Key1"
outer.getValue() ... represents that inner map
for(外部条目:nestedMap.entrySet){
outer.getKey()…将是“Key1”
outer.getValue()…表示该内部映射
对于内部循环,它是非常相同的;这意味着您可以对outer.getValue()返回的值使用each和entrySet()。我认为您需要向我们展示您的代码,而不是试图解释它。有太多的差距(例如,您提到了字母键
,但没有告诉我们这是什么意思——请不要解释它的意思,只给我们看代码).张贴一篇演示你尝试了什么以及困难是什么的文章。@ajb我展示了所有代码需要。letterKeys
clear just=KeyA,KeyB,KeyC…这只是理解我谈论的是哪一个键的一种方式。这对你来说很清楚。我不清楚。如果“我展示了所有代码需要”我希望你能从比我更聪明的人那里得到帮助。我不能以此为基础提供帮助。对不起,我认为你需要向我们展示你的代码,而不是试图解释它。有太多的差距(例如,你提到了字母键
,但没有告诉我们这意味着什么——请不要解释它意味着什么,只是向我们展示代码).张贴一篇演示你尝试了什么以及困难是什么的文章。@ajb我展示了所有代码需要。letterKeys
clear just=KeyA,KeyB,KeyC…这只是理解我谈论的是哪一个键的一种方式。这对你来说很清楚。我不清楚。如果“我展示了所有代码需要”我希望你能从比我聪明的人那里得到帮助。我不能据此提供帮助。对不起。