2015-09-06 58 views
1

我正在寻找一个集合,该集合维护排序顺序以及索引访问。我的程序将有数十万次迭代,所以我不想继续调用Collections.sort,因为这太昂贵了。在java中维护排序集合,索引访问

+1

为什么存在没有标准的JDK排序列表请参阅http://stackoverflow.com/questions/8725387/why-is-there-no-sortedlist-in-java – wero

+1

看到这个q/a:http: //stackoverflow.com/questions/4031572/sorted-array-list-in-java – aioobe

+0

你可以使用二进制搜索插入一个ArrayList,同时保持秩序eg [这里](http://stackoverflow.com/a/3602046/1413133) –

回答

2

Java附带的标准集合都不支持这一点,但您可以实现自己的。

实现这种集合的一种方法是使用排序后的数组。索引查找很容易。值查找可以使用Arrays.binarySearch()。插入新值也会使用binarySearch()来查找插入点,然后移动剩余的值以为新值腾出空间,并根据需要自动扩展数组。