根据你的理解,请说明一下ArrayList和LinkedList的区别
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/15 19:43:08
根据你的理解,请说明一下ArrayList和LinkedList的区别
ArrayList的优势在于动态的增长数组,非常适合初始时总长度未知的情况下使用.
LinkedList的优势在于在中间位置插入和删除操作,速度是最快的,O(1),而ArrayList是O(n-i)的.
大道理请参看:
LinkedList类
LinkedList实现了List接口,允许null元素.此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部.这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque).
注意LinkedList没有同步方法.如果多个线程同时访问一个List,则必须自己实现访问同步.一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
ArrayList类
ArrayList实现了可变大小的数组.它允许所有元素,包括null.ArrayList没有同步.
size,isEmpty,get,set方法运行时间为常数.但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间.其他的方法运行时间为线性.
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小.这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义.当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率.
和LinkedList一样,ArrayList也是非同步的(unsynchronized).
LinkedList的优势在于在中间位置插入和删除操作,速度是最快的,O(1),而ArrayList是O(n-i)的.
大道理请参看:
LinkedList类
LinkedList实现了List接口,允许null元素.此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部.这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque).
注意LinkedList没有同步方法.如果多个线程同时访问一个List,则必须自己实现访问同步.一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
ArrayList类
ArrayList实现了可变大小的数组.它允许所有元素,包括null.ArrayList没有同步.
size,isEmpty,get,set方法运行时间为常数.但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间.其他的方法运行时间为线性.
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小.这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义.当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率.
和LinkedList一样,ArrayList也是非同步的(unsynchronized).
linkedlist 和arraylist的区别
java中的LinkedList 和 ArrayList的区别?
Java中Arraylist与linkedlist的区别
ArrayList、LinkedList、Vector之间的区别是什么?
请说明集合类ArrayList与 HashMap的区别
ArrayList和Vector的区别
hashmap和arraylist的区别是什么?
java中ArrayList跟Vector的区别?
2,ArrayList和Vector的区别,HashMap和Hashtable的区别
java ArrayList的用法
知识水平和能力的区别请说明一下这俩个概念的区别,本质和属性
请看下列的漫画,然后根据漫画的内容回答下列问题: 骆驼和羊,你同意谁的观点?请简要说明一下理由。