4
for (Map.Entry<String, Map<String, List>> entry:Map1.entrySet()) 
{
    String key=entry.getKey();
    System.out.println("Type : " +key);

    for (Map.Entry<String, List> entry1 : entry.getKey().getValue().entrySet())
    {
        System.out.println("Type : " + entry1.getKey());
    }
}

の代わりに何を使うべきかわかりませんentry.getKey().getValue().entrySet()。誰かが私にこれを理解するように説明できますか?これは、ネストされたマップを反復するためのものです。

私が得たエラーは

.\common\devtracker\process\devtr\DevTrackerImpl.java:226: cannot find symbol
symbol  : method getValue()
location: class java.lang.String
for (Map.Entry<String, List<ProjectBreakupVO>>    entry1:entry.getKey().getValue().entrySet())
4

3 に答える 3

2

entry.getKey()には、文字列を返すだけなので、getValue()メソッドはありません。あなたがおそらくここに欲しいもの

for (Map.Entry<String, List> entry1 : entry.getKey().getValue().entrySet())

代わりに

for (Map.Entry<String, List> entry1 : entry.getValue().entrySet())
于 2012-11-23T03:53:28.047 に答える
0

使用する必要があります...。

for (Map.Entry<String, List> entry1 : entry.getKey().getValue().entrySet())

内部ループのエントリをフェッチします。

于 2012-11-23T04:08:20.957 に答える
0

タイプのマップを反復処理しようとしていて、次のように使用したときにfindbugsMap<String, List>の問題に直面している場合:myMap.keySet()

    for (String keyValue : myMap.keySet()) {
        String key = keyValue;
        List objValue = myMap.get(key);
    }

myMap.entrySet()次に、より推奨される方法を使用してマップを反復処理してみてください。

    for(Map.Entry<String, List> entry: myMap.entrySet()) {
        String key = entry.getKey();
        List objValue = entry.getValue();
    }

したがって、この場合のforloopのネストは次のようになります。

for (Map.Entry<String, Map<String, List>> entry:Map1.entrySet()) 
{
    String key=entry.getKey();
    System.out.println("Type : " +key);

    for (Map.Entry<String, List> entry1 : entry.getValue().entrySet())
    {
        System.out.println("Type : " + entry1.getKey());
    }
}
于 2014-10-05T23:50:46.140 に答える