码迷,mamicode.com
首页 > 其他好文 > 详细

ArrayList和LinkedList的区别

时间:2016-12-12 19:21:31      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:效率   对象   structs   nbsp   lock   const   except   实现   link   

以下为jdk1.6中ArrayList中的构造函数源码。

  1.     public ArrayList(int initialCapacity) {
  2.         super();
  3.         if (initialCapacity < 0)
  4.             throw new IllegalArgumentException("Illegal Capacity: "+
  5.                                                initialCapacity);
  6.         this.elementData = new Object[initialCapacity];
  7.     }
  8.     /**
  9.      * Constructs an empty list with an initial capacity of ten.
  10.      */
  11.     public ArrayList() {
  12.         this(10);
  13.     }

可以看出在建立ArrayList对象的时候。
默认建立了一个长度为10的Object数组。但是这只是ArrayList 的实现方式。
在LinkedList中是这样的。

  1. public LinkedList() {
  2. header.next = header.previous = header;
  3. }

如果有C 基础的话。应该知道这是链表实现的。
这就是为什么LinkedList的增删效率高!查询效率低!而ArrayList 的查询效率高!增删效率低!
这就是说其实数组只是集合实现的一种方式。

ArrayList和LinkedList的区别

标签:效率   对象   structs   nbsp   lock   const   except   实现   link   

原文地址:http://www.cnblogs.com/gameoverit/p/6165408.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!