美文网首页
根据位置取数据的方法

根据位置取数据的方法

作者: Quillagua | 来源:发表于2019-06-21 10:37 被阅读0次

    根据位置取数据的方法

    get(int index): 根据指定索引返回数据

    public E get(int index) {
            //检查index范围是否在size之内
            checkElementIndex(index);
            //调用Node(index)去找到index对应的node然后返回它的值
            return node(index).item;
        }
    

    获取头节点(index=0)数据方法:

    public E getFirst() {
            final Node<E> f = first;
            if (f == null)
                throw new NoSuchElementException();
            return f.item;
        }
    public E element() {
            return getFirst();
        }
    public E peek() {
            final Node<E> f = first;
            return (f == null) ? null : f.item;
        }
    
    public E peekFirst() {
            final Node<E> f = first;
            return (f == null) ? null : f.item;
         }
    

    区别: getFirst(),element(),peek(),peekFirst() 这四个获取头结点方法的区别在于对链表为空时的处理,是抛出异常还是返回null,其中getFirst()element() 方法将会在链表为空时,抛出异常

    element()方法的内部就是使用getFirst()实现的。它们会在链表为空时,抛出NoSuchElementException
    获取尾节点(index=-1)数据方法:

     public E getLast() {
            final Node<E> l = last;
            if (l == null)
                throw new NoSuchElementException();
            return l.item;
        }
     public E peekLast() {
            final Node<E> l = last;
            return (l == null) ? null : l.item;
        }
    

    两者区别: getLast() 方法在链表为空时,会抛出NoSuchElementException,而peekLast() 则不会,只是会返回 null

    相关文章

      网友评论

          本文标题:根据位置取数据的方法

          本文链接:https://www.haomeiwen.com/subject/ugvkqctx.html