直通车:Java集合框架系列目录
本篇博文分为六个部分:
基本概念继承关系结构特点常用API遍历方式代码示例LinkedList:一种可以在任何位置进行高效地插入和删除操作的有序序列。
LinkedList是一个继承于AbstractSequentialList的双向链表。 LinkedList实现 List 接口,能对它进行队列操作。 LinkedList实现 Deque 接口,即能将LinkedList当作双端队列使用。 LinkedList实现了Cloneable接口,即覆盖了函数clone(),能被克隆。 LinkedList实现java.io.Serializable接口,意即LinkedList支持序列化,能通过序列化传输。
有关AbstractSequentialList:
其支持按次序访问,而AbstractList 支持随机访问。其主要方法都是通过迭代器实现的。1.通过迭代器遍历。即通过Iterator去遍历。
for(Iterator iter = list.iterator(); iter.hasNext();) iter.next();2.通过索引遍历,随机访问。
int size = list.size(); for (int i=0; i<size; i++) { list.get(i); }3.for循环遍历。
Integer value = null; for (Integer integ:list) { value = integ; }4.通过pollFirst()遍历。 java.util.LinkedList.pollFirst() 方法检索并移除此列表的第一个元素,如果此列表为空,则返回null。
while(list.pollFirst() != null);5.通过pollLast()遍历。 java.util.LinkedList.pollLast() 方法检索并移除此列表的最后一个元素,如果此列表为空,则返回null。
while(list.pollLast() != null);6.通过removeFirst()遍历。 java.util.LinkedList.removeFirst() 方法移除并返回此列表的第一个元素,如果此列表为空,则抛出异常。
try { while(list.removeFirst() != null); } catch (NoSuchElementException e) { }7.通过removeLast()遍历。 java.util.LinkedList.removeLast() 方法移除并返回此列表的最后一个元素,如果此列表为空,则抛出异常。
try { while(list.removeLast() != null); } catch (NoSuchElementException e) { }使用这几种方法遍历LinkedList时,使用removeFist()或removeLast()效率最高,但会删除原始数据。若只读取,不删除,应该使用for循环遍历。
如有谬误或不完善之处,恳请斧正!