1
我正在寻找一个集合,该集合维护排序顺序以及索引访问。我的程序将有数十万次迭代,所以我不想继续调用Collections.sort,因为这太昂贵了。在java中维护排序集合,索引访问
我正在寻找一个集合,该集合维护排序顺序以及索引访问。我的程序将有数十万次迭代,所以我不想继续调用Collections.sort,因为这太昂贵了。在java中维护排序集合,索引访问
Java附带的标准集合都不支持这一点,但您可以实现自己的。
实现这种集合的一种方法是使用排序后的数组。索引查找很容易。值查找可以使用Arrays.binarySearch()
。插入新值也会使用binarySearch()
来查找插入点,然后移动剩余的值以为新值腾出空间,并根据需要自动扩展数组。
为什么存在没有标准的JDK排序列表请参阅http://stackoverflow.com/questions/8725387/why-is-there-no-sortedlist-in-java – wero
看到这个q/a:http: //stackoverflow.com/questions/4031572/sorted-array-list-in-java – aioobe
你可以使用二进制搜索插入一个ArrayList,同时保持秩序eg [这里](http://stackoverflow.com/a/3602046/1413133) –