Apache Commons Collectionsを使用して、対応する1つの値を持つ2つのキーを格納するMultiKeyMapを作成し、MapIteratorを使用してマップをウォークスルーしています。私が抱えている問題は、MapIteratorによって返されたキーを、単一の「コンポジット」ではなく、個々のキーに戻す必要があることです。「composite」キーを含む文字列を分割したり、リフレクションを使用したりすることはできますが、これらのオプションはどちらも非常にエレガントに見えません。
問題をモデル化するために、次のサンプルコードを作成しました
MultiKeyMap multiKeyMap = new MultiKeyMap();
multiKeyMap.put("Key 1A","Key 1B","Value 1");
multiKeyMap.put("Key 2A","Key 2B","Value 2");
multiKeyMap.put("Key 3A","Key 3B","Value 3");
MapIterator it = multiKeyMap.mapIterator();
while (it.hasNext()) {
it.next();
System.out.println(it.getKey());
System.out.println(it.getValue());
}
it.getKey()
MultiKey [Key 3A、Key 3B]を返しますが、私がやりたいのは、キーを個々の変数に割り当てることです。たとえばmyKey1 = it.getKey().keys[0]
、myKey2 = it.getKey().keys[1]
JavaDocでこれを実現するものが見つかりません。
リフレクションを使用したり、it.getKey()によって返された文字列を操作したりせずに、MapIteratorによって返されたキーを個々のキーに分割することは可能ですか?