假设我们有一个包含几百个元素的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