如何使用java将集合转换为已排序的数组

时间:2013-09-01 15:18:17

标签: java sorting collections

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

2 个答案:

答案 0 :(得分:4)

两行:

Object[] array = set.toArray();
Arrays.sort(array);

答案 1 :(得分:1)

TreeSet实现了SortedSet。使用从multimap中获取的值构造一个新的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