集合类库(二):LinkedList
2009-09-18 00:00:00 来源:WEB开发网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就会报异常(第一个元素之前没有任何可以操作的数据)。
Tags:集合 LinkedList
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接