Я использую Apache Commons Collections для создания MultiKeyMap, в котором будут храниться два ключа с одним соответствующим значением, а затем использовать MapIterator для просмотра карты. Проблема, с которой я столкнулся, заключается в том, что мне нужно разбить ключи, возвращаемые MapIterator, на отдельные ключи, а не на один «композит». Хотя я мог бы разделить строку, содержащую «составной» ключ, или использовать отражения, ни один из этих вариантов не кажется очень элегантным.
Чтобы смоделировать проблему, я создал следующий пример кода
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 для этого.
Возможно ли разбить ключи, возвращаемые MapIterator, на отдельные ключи без использования отражений или манипулирования строкой, возвращаемой it.getKey ()?