假設我們有一個包含幾百個元素的java.util.LinkedList。一種可能性插入現有的元件之後的新的元素Eķ將是:將現有元素添加到LinkedList之後的性能
list.add(list.indexOf(K) + 1, E);
據我明白這種方法具有O(K 2 )行爲,其中k表示元件K的位置第一個indexOf()遍歷列表,直到它找到K,然後add必須再次執行相同的工作,直到它到達位置k + 1。但是必須修改的條目可以在第一步之後輕鬆確定。我認爲用O(k)行爲創建一個方法addAfter(K,E)並不是那麼多工作。
除了切換到java.util.ArrayList之外,有沒有一種方法可以改善像這樣的場景中的性能?
預先感謝您。
當然,你說得對。我的錯。仍然可以減少鏈接遍歷的數量嗎? – aka 2011-04-02 12:21:35