ハッシュマップのリストのハッシュマップを反復処理します。例えばJava - ハッシュマップのリストのハッシュマップを反復処理する方法
、私はこのマップを反復処理するにはどうすればよい
HashMap <String, List <HashMap<String, String> > >
。
解決策を見つけるのを手伝ってください。
ハッシュマップのリストのハッシュマップを反復処理します。例えばJava - ハッシュマップのリストのハッシュマップを反復処理する方法
、私はこのマップを反復処理するにはどうすればよい
HashMap <String, List <HashMap<String, String> > >
。
解決策を見つけるのを手伝ってください。
あなたはおそらくあなたのデザインを見てください。これは、より簡単な方法で構造化できるようなものです。このコレクションをクラスに分割することを検討してください。 しかし、今すぐに変更できない(時間がない)場合は、手を差し上げます。
最も簡単な方法は、いくつかの段階にまで反復を破るために、おそらくです:
基本コードは次のとおりです。
for(List<HashMap<String, String>> list : outer.values()) {
for(HashMap<String, String> map : list) {
for(String value : map.values()) {
//Do something
}
}
}
マップの名前を付けてください。
HashMap<String, List<HashMap<String, String>>> map; //I'll assume it is initialized and filled with something.
for (String key : map.keySet()) {
for (HashMap<String, String> map2 : map.get(key)) {
for (String key2 : map2.keySet()) {
//do something
}
}
}
別のアプローチは、コレクションを介して、ネストされたループを使用することである。
for (List<HashMap<String, String>> list : map.values()) {
for (HashMap<String, String> map2 : list) {
for (String veryInnerValue : map2.values()) {
//do something
}
}
}
少し異なります。値の鍵を知る必要がない場合は、2番目の方が良いでしょう。
キーと各マップの値を知っておく必要がある場合:
Map<String, List<HashMap<String, String>>> myMap = new HashMap<String, List<HashMap<String, String>>>();
// loop for first map
for (Entry<String, List<HashMap<String, String>>> myMapEntry : myMap.entrySet()) {
System.out.println("myMap entry key" + myMapEntry.getKey() + ", key ");
// loop for list (value of entry)
for (HashMap<String, String> valueOfList : myMapEntry.getValue()) {
// loop for second map
for (Entry<String, String> entryOfMapOfList : valueOfList.entrySet()) {
System.out.println("key " + entryOfMapOfList.getKey() + " value " + entryOfMapOfList.getValue());
}
}
}
は、いくつかのJavaコードを記述します。 –
ネストされた構造の繰り返し=ネストされたループ – 4castle
しないでください。このようなデータ構造を持っている場合は、設計に問題があります。 – Raedwald