LinkedList与ArrayList的比较

这个问题在这里已经有了答案:

  • 何时通过ArrayList使用LinkedList? 28个答案

  • 链接列表插入确实速度更快,问题出在您的示例中。 在你的代码中,你通过追加到所有的时间来插入。 对于ArrayList,它和LinkedList一样简单。 你应该做的是建立一个说5000个项目的清单,然后开始插入中间。 这里array变慢 - 你必须在插入位置之后将整个数组的其余部分全部移位。 这是什么将显示差异。 分析事情的工作原理,不难理解为什么。 这是修改的代码:

    import java.util.Date;
        import java.util.LinkedList;
        import java.util.ArrayList;
        import java.util.List;
    
        public class Prob {
    
            public static void main(String[] args) {
    
                long lStartTime = new Date().getTime();
                System.out.println("lStartTime:: " + lStartTime);
                List<Integer> integerList = new LinkedList<Integer>();
                for (int i = 0; i < 5000; i++) {
                    integerList.add(0, i);
                }
                for (int i = 0; i < 100000; i++) {
                    integerList.add(1000, i);
                }
    
                long lEndTime = new Date().getTime();
                System.out.println("lEndTime:: " + lEndTime);
    
                long difference = lEndTime - lStartTime;
    
                System.out.println("Elapsed milliseconds: " + difference);
    
            }
    }
    

    LinkedList在插入时不比ArrayList快。 ArrayList由数组支持,因此插入元素很简单。 插入LinkedList需要创建一个新的Entry实例,该实例较慢。

    插入到ArrayList的唯一时间可能会比较慢,因为插入导致ArrayList容量增加,这需要创建一个新数组并将旧数组复制到它。

    链接地址: http://www.djcxy.com/p/19977.html

    上一篇: comparison of Linkedlist over arraylist

    下一篇: ArrayList vs LinkedList Java