あなたの質問は次のように理解しています。
国の関連付けを collection-of-{sate, data1, data2} に保存し、後で特定の国に関連付けられたコレクションにアクセスしたいとします。
この場合HashMap
、そのような関連付けを提供する を使用できます。{state, data1, data2} トリプルをキャプチャするクラスがあると仮定するとStateData
、次のように記述できます。
HashMap<String, Collection<StateData>> countries;
マップに次のものを入力します。
List<StateData> stateColl = new LinkedList<StateData>();
Map<String, List<StateData>> countries = new HashMap<String, List<StateData>>();
countries.put("USA", stateColl);
stateColl.add(stateData1);
stateColl.add(stateData2);
//...
ここでstateData1
、... は型StateData
です。の代わりに、ニーズに合った任意のコレクションを使用できることに注意してくださいLinkedList
。TreeMap
国を (アルファベット順) 順に保存する必要がある場合は、の代わりにa を使用することもできますがHashMap
、これにはパフォーマンスの低下が伴います。
次に、状態コレクションに次のようにアクセスします。
List<StateData> stateColl = countries.get("USA");
for (StateData stateData : stateColl)
{
// process the state info
}