2017-01-15 7 views
0

オブジェクトのすべてのキーとすべての属性をマルチマップから印刷します。 同じキーに異なるオブジェクトを設定できます。マルチマップからキーと値を取得

私は次のコードでマルチマップを作成しました:

Multimap<Integer,Country> country=ArrayListMultimap.create(); 

私のクラスの国は次のとおりです。

class Country { 
    String country; 
    int population; 
} 

どのように私は、すべてのオブジェクトは、それから属性を取得することができます:私が使っていたのHashMapで 次のコード:

for (Map.Entry p : country.entrySet()) { 
    Country country=(Country)p.getValue(); 
    nameCountry=country.country; 
    population=country.population; 
} 

答えて

1

rを避けるには、keySet()を使用します。エピソード、キー()を繰り返したい場合。あなたはユニークなキーを取得するためのkeySetを使用して、キーのコレクションを取得することができます

for (Map.Entry<Integer, Country> p : country.entries()) { 
    Country country=(Country)p.getValue(); 
    nameCountry=country.country; 
    population=country.population; 
    } 
+0

以前はMultimapを使用していませんでしたが、私は文字列と整数でいくつかの例を見てきましたが、クラスオブジェクトではありません。例はありますか? –

+0

値またはキーとしては?マップ(キーオブジェクトのhashCode()を呼び出す)とほぼ同じですが、繰り返しが来たら既存のキーを削除しません – efekctive

1

使用ほぼ同じではなく、entrySet()使用entries()の経由国のインスタンスを取得します。

for (Integer key : countries.keySet()) { 
     Collection<Country> collection = countries.get(key); 
     for (Country country : collection) 
     { 
     String name = country.country; 
     int poplulation = country.population; 
     } 
    } 
関連する問題