2

HashMultimap 返回给定键的一组值。如何将此 java 集转换为排序数组?除了使用 java.util.collections.sort(....) 将其转换为排序列表然后使用 to 数组之外,还有其他方法吗?

4

2 回答 2

4

两行:

Object[] array = set.toArray();
Arrays.sort(array);
于 2013-09-01T15:58:25.693 回答
2

TreeSet 实现了 SortedSet。使用从多重映射中获得的值构造一个新的 TreeSet。

HashMultimap<K,V> hm = new HashMultimap<>();

// (...) alter hm

TreeSet<V> ts = new TreeSet<>(hm.values());
//or
TreeSet<V> ts = new TreeSet<>(hm.get("key"));

V[] ordered = (V[]) ts.toArray();

我不确切知道有序插入的效率如何,所以我不知道这是否是一个好的解决方案。在 Java 文档中查找详细比较。

供参考: http ://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html

于 2013-09-01T15:33:56.713 回答