LinkedList源码详解(2)

LinkedList源码详解(2)

  • 说明:上一篇对Linked的增删改查的源码做了解析,本篇主要是对剩余的一些方法在进行分析。(主要是对双向链表的特有的方法)

peek操作(查看不删除)

  1. peek() peekFirst() (查看容器中的第一个元素,但是不删除此元素。此方法和getFisrt效果类似,但是值得注意的是如果第一个元素为空的话getFirst会抛出异常)
    public E peek() {
        final Node f = first;
        return (f == null) ? null : f.item;
    }
    
    public E peekFirst() {
        final Node f = first;
        return (f == null) ? null : f.item;
     }

2.peekLast() (查看容器最后一个元素,也不删除元素。此方法和getLast效果类似,但是值得注意的是如果最后一个元素为空的话getLast会抛出异)

    public E peekLast() {
        final Node l = last;
        return (l == null) ? null : l.item;
    }

poll操作(获取并删除)

  1. poll() pollFisrt() 获取容器的第一个元素并且如果元素不为空将改元素从容器中删除
     public E poll() {
        final Node f = first;
        return (f == null) ? null : unlinkFirst(f);
    }

  1. pollLast() 获取容器的最后一个元素并且如果元素不为空将改元素从容器中删除
    public E pollLast() {
        final Node l = last;
        return (l == null) ? null : unlinkLast(l);
    }

offer操作(添加操作)

  1. offer(E e) offerLast(E e) 向容器的最后添加一个元素 注意:它们和add(E e)效果一样
    public boolean offer(E e) {
        return add(e);
    }
  1. offerFirst(E e) 向容器的首部添加一个元素
     public boolean offerFirst(E e) {
        addFirst(e);
        return true;
    }

push和pop(对链表推元素和弹出元素)

  1. push(E e) 向容器首部压入一个元素
    public void push(E e) {
        addFirst(e);
    }

2.pop() 移除第一个元素 和removeFirst效果一样

    public E pop() {
        return removeFirst();
    }

总结:LinkedList提供了大量对链表的特有操作,可以有很多不同的选择对容器进行操作。

你可能感兴趣的:(Java,Collection,Java)