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) –