私はグーグルマルチマップを繰り返す必要があります。だが
- jdk 1.4を使用していますが、より高いバージョンに切り替えることができません。だから私は一般的な機能を使用することはできません。
- 私のマルチマップは、キーに対して複数の値を持つことができます。
- multimapの値自体がmultimapである場合があります
Google Collections (現在の Guava) は Java 1.5 ライブラリです... Java 1.4 にジェネリックがないことを無視しても、おそらく 1.5 で追加されたものを使用しているため、互換性がありません。とはいえ、 a を反復処理するにはさまざまな方法がありますMultimap
。
キーによると、Java8 のコレクション ペア:
multimap.asMap().forEach((key, collection) -> {...});
すべての値を反復します。
for (Object value : multimap.values()) { ... }
すべてのキーを反復処理します (反復で複数回出現する複数の値にマップされるキー):
for (Object key : multimap.keys()) { ... }
キー セットを反復処理します。
for (Object key : multimap.keySet()) { ... }
エントリを反復します。
for (Map.Entry entry : multimap.entries()) { ... }
Collection
値sを反復処理します。
for (Collection collection : multimap.asMap().values()) { ... }
bwawok で説明されているように、使用Collection
中の各キーに対応するものを取得することもできます。keySet()
get
編集: Java 1.4 にも foreach ループがないという事実については考えていませんでした。そのため、もちろん、上記の各ループはIterator
s を直接使用して記述する必要があります。
私はJava 6を使用していますが、これはかなり近いはずです...Java 1.4っぽいものを見逃していたらごめんなさい
Set keySet = listmultimap.keySet();
Iterator keyIterator = keySet.iterator();
while (keyIterator.hasNext() ) {
String key = (String) keyIterator.next();
List values = listmultimap.get( key );
}
get を実行するたびに、そのキーに一致するすべてのものが返されます。次に、それらを剥がすか、好きなことをすることができます。