WEB开发网
开发学院软件开发Java 集合类库(二):LinkedList 阅读

集合类库(二):LinkedList

 2009-09-18 00:00:00 来源:WEB开发网   
核心提示:LinkedList是Java中的链表结构,这里用总结一下使用它需要注意的问题,集合类库(二):LinkedList, (1) LinkedList是双重循环链表, 其链表结点用私有内部类Entry表示,add方法可以在迭代器当前位置之前出入数据,set,remove都是操作当前元素之前的元素,具有element,ne

LinkedList是Java中的链表结构,这里用总结一下使用它需要注意的问题。

(1)  LinkedList是双重循环链表。

其链表结点用私有内部类Entry表示,具有element,next,previous三个域。

Java代码   

//LinkedList的头结点 
private transient Entry<E> header = new Entry<E>(null, null, null); 
//LinkedList初始化头结点 
public LinkedList() { 
    header.next = header.previous = header; 
} 
//LinkedList的内部类Enter结点 
private static class Entry<E> { 
   E element; //节点数据域 
   Entry<E> next;  //指向下一个节点的引用 
   Entry<E> previous;  //指向上一个节点的 引用 
   Entry(E element, Entry<E> next, Entry<E> previous) { 
   this.element = element; 
   this.next = next; 
   this.previous = previous; 
   } 
}

(2)  链表的随机插入,修改——ListIterator的巨大贡献

链表的插入效率是很高的,但这只限于插入动作而言,如果需要在某一个位置上插入数据,还是需要迭代查找到这个位置的。这项工作就由一个ListIterator迭代器承担了。

ListIterator是 LinkedList的内部类。除了继承了Iterator方法之外,还加入了add(插入),set(修改),previous(反向遍历),hasPrevious等方法。例如,add方法可以在迭代器当前位置之前出入数据。set,remove都是操作当前元素之前的元素,所以在迭代器next方法之前调用 set,remove就会报异常(第一个元素之前没有任何可以操作的数据)。

1 2 3  下一页

Tags:集合 LinkedList

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接