可能重复:
Fastest strategy to form and sort an array of positive integers
从未排序的整数迭代中获取排序数组的最快方法是什么?目前我通过迭代遍历可迭代n次(其中n是列表的大小)每次从可迭代&获得最高值来做到这一点。把它放在数组中。但我正在寻求清理这个&让一些好的图书馆为我做。
可能我不介意为此目的使用像番石榴等任何流行的图书馆。
答案 0 :(得分:6)
它与 assylias 已经提供的答案基本相同,但如果您在类路径上有Google Guava,则可以将其缩短为:
import java.util.Collections;
import java.util.List;
import com.google.common.collect.Lists;
...
List list = Lists.newArrayList(iterable);
Collections.sort(list);
答案 1 :(得分:1)
评论说,最简单也可能最快的方法是填充集合并对其进行排序 - 在这种情况下我只想使用ArrayList:
List<Integer> sortedList = new ArrayList<>();
for (Integer i : yourIterable) {
sortedList.add(i);
}
Collections.sort(sortedList);
如果你事先知道你的Iterable的大小,你可以用合适的大小初始化arraylist,以提高效率:
List<Integer> sortedList = new ArrayList<>(size);