天天看点

java笔记三:List接口

  list承诺可以将元素维护在特定的序列中。list接口在collection的基础上添加了大量的方法,使得可以在list的中间插入和删除元素。list与 set 不同,列表通常允许重复的元素。并且存放的顺序与插入的顺序一致。

  list接口的常用方法有:

  <code>**[add](http://www.cnblogs.com/java/util/list.html#add(e))**([e](http://www.cnblogs.com/java/util/list.html "list 中的类型参数") o)</code>   :将指定对象加入到列表中。

  <code>**[add](http://www.cnblogs.com/java/util/list.html#add(int, e))**(int index, [e](http://www.cnblogs.com/java/util/list.html "list 中的类型参数") element)</code>  :将对象加入到指定位置处。

  <code>**[addall](http://www.cnblogs.com/java/util/list.html#addall(java.util.collection))**([collection](http://www.cnblogs.com/java/util/collection.html "java.util 中的接口")&lt;? extends [e](http://www.cnblogs.com/java/util/list.html "list 中的类型参数")&gt; c)</code>  :追加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序(可选操作)。

  <code>**[addall](http://www.cnblogs.com/java/util/list.html#addall(int, java.util.collection))**(int index, [collection](http://www.cnblogs.com/java/util/collection.html "java.util 中的接口")&lt;? extends [e](http://www.cnblogs.com/java/util/list.html "list 中的类型参数")&gt; c) :将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。</code>

  <code>**[remove](http://www.cnblogs.com/java/util/list.html#remove(int))**(int index)</code> :移除某个位置上的元素。

  <code>**[remove](http://www.cnblogs.com/java/util/list.html#remove(java.lang.object))**([object](http://www.cnblogs.com/java/lang/object.html "java.lang 中的类") o)</code> : 移除列表中出现的首个指定元素。

  <code>**[set](http://www.cnblogs.com/java/util/list.html#set(int, e))**(int index, [e](http://www.cnblogs.com/java/util/list.html "list 中的类型参数") element) :用指定元素替换列表中指定位置的元素。</code>

  <code>**[size](http://www.cnblogs.com/java/util/list.html#size())**()</code> :返回列表大小。

…….

  常用的有两种list类型:arraylist和linkedlist。

<a></a>

一、arraylist

  arraylist擅长于随即访问元素,因为它像数组一样提供了下标,可以根据下标直接访问,所以可以将arraylist看作可扩充自身尺寸的数组。但是在arraylist的中间插入和移除元素时较慢。

输出结果为:

由输出结果的1-5行可以看出,list存放元素的顺序与加入的顺序一致。

  二、linkedlist

  linkedlist通过代价较低的在list中间进行插入和删除操作,提供了优化的顺序访问。但是在随即访问方面相对比较慢。

  下面举个例子来演示linkedlist和arraylist随即访问的速度:

程序运行结果为:

很明显arraylist随即访问比linkedlist快的多,因为linkedlist是以链表的现实存储的。