Java中是否有一个对象像Map一样用于存储和访问键/值对,但可以返回一个有序的键列表和一个有序的值列表,使得键和值列表的顺序相同?
因此,作为代码解释,我正在寻找行为类似于我虚构的 OrderedMap 的东西:
OrderedMap<Integer, String> om = new OrderedMap<>();
om.put(0, "Zero");
om.put(7, "Seven");
String o = om.get(7); // o is "Seven"
List<Integer> keys = om.getKeys();
List<String> values = om.getValues();
for(int i = 0; i < keys.size(); i++)
{
Integer key = keys.get(i);
String value = values.get(i);
Assert(om.get(key) == value);
}
原文由 Whatsit 发布,翻译遵循 CC BY-SA 4.0 许可协议
SortedMap 接口(带有 TreeMap 的实现)应该是你的朋友。
该接口具有以下方法:
keySet()
按升序返回一组键values()
返回所有值按对应键升序排列的集合所以这个接口完全满足你的要求。但是,键必须具有有意义的顺序。否则,您可以使用 LinkedHashMap ,其中顺序由插入顺序决定。