2015-09-06 47 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()來查找插入點,然後移動剩餘的值以爲新值騰出空間,並根據需要自動擴展數組。