有序通用Map实现?

时间:2013-03-19 15:52:13

标签: java collections guava linkedhashmap apache-commons-collection

哪个库最适合有序地图实施?

要求实施

1)通用

2)可通过整数索引

访问

索引无法访问JRE中的一个:http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html

Commons-Collections 3.2中的一个不是通用的:http://commons.apache.org/proper/commons-collections//javadocs/api-release/org/apache/commons/collections/map/LinkedMap.html

Commons-Collection 4.0中的一个尚未发布。

在番石榴中找不到合适的课程。有吗?

1 个答案:

答案 0 :(得分:4)

可以使用ImmutableSortedMap(它是不可变的和空的敌对)来完成:

// use ImmutableSortedMap#copyOf or one of builders - naturalOrder or orderedBy
ImmutableSortedMap<K, V> map = ImmutableSortedMap.copyOf(origMap, comparator);
map.keySet().asList().get(index);

但是你想解决什么问题?在我看来,就像糟糕的代码味道......

修改

如果您想要插入订单而不是使用比较器,只需使用ImmutableMap

ImmutableMap.copyOf(origMap).keySet().asList().get(index);