linkedList使用总结!

来源:互联网 发布:js触发onclick事件 编辑:程序博客网 时间:2024/06/06 05:20

1.LinkedList数据结构是双向链表。//这一块比较粗糙

2.add方法

Entry(E element, Entry<E> next, Entry<E> previous) {    this.element = element;//这里改变的是新增节点的前继后继的指针    this.next = next;//这里永远都是尾节点    this.previous = previous;//这里永远的是头节点,上一次正常新增节点指针}    }    private Entry<E> addBefore(E e, Entry<E> entry) { Entry<E> newEntry = new Entry<E>(e, entry, entry.previous); newEntry.previous.next = newEntry;//将对应的指针进行调整newEntry.next.previous = newEntry;size++;//个数增加modCount++;return newEntry;    }
3.addAll方法
    public boolean addAll(int index, Collection<? extends E> c) {        if (index < 0 || index > size)            throw new IndexOutOfBoundsException("Index: "+index+                                                ", Size: "+size);        Object[] a = c.toArray();        int numNew = a.length;        if (numNew==0)            return false;modCount++;        Entry<E> successor = (index==size ? header : entry(index));        Entry<E> predecessor = successor.previous;for (int i=0; i<numNew; i++) {            Entry<E> e = new Entry<E>((E)a[i], successor, predecessor);            predecessor.next = e;//此为重点            predecessor = e;        }        successor.previous = predecessor;        size += numNew;        return true;    }
粗糙了。 自己看就好了。

0 0
原创粉丝点击