我正在使用 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()
myKey1 = it.getKey().keys[0]
返回 MultiKey[Key 3A, Key 3B] 但我想要做的是将键分配给单个变量,类似于myKey2 = it.getKey().keys[1]
但我在 JavaDoc 中找不到任何东西来实现这一点。
是否可以在不使用反射或操作 it.getKey() 返回的字符串的情况下将 MapIterator 返回的键分解为单个键?