美文网首页
LinkedList源码实现 get方法

LinkedList源码实现 get方法

作者: 粽十三丶 | 来源:发表于2021-04-05 13:57 被阅读0次

LinkedList源码实现 get

1.首先看get源码

public E get(int index) {

//调用checkElementIndex()方法

        checkElementIndex(index);

        return node(index).item;

    }

2.调用checkElementIndex方法判断是否索引越界,否则抛出异常

private void checkElementIndex(int index) {

        if (!isElementIndex(index))

            throw new IndexOutOfBoundsException(outOfBoundsMsg(index));

    }

3.调用node方法取值

Node<E> node(int index) {

        // assert isElementIndex(index);

//判断取值的下标是否小于数据总长度的一半,true则从前面开始用for循环比对往后面查询

//判断方式为从0或则从最后一位开始循环,通过链表的第一位往后或者最后一位往前取值,循环到index位返回结果

        if (index < (size >> 1)) {

            Node<E> x = first;

            for (int i = 0; i < index; i++)

                x = x.next;

            return x;

        } else {

//false则用for循环从后面往前查询

            Node<E> x = last;

            for (int i = size - 1; i > index; i--)

                x = x.prev;

            return x;

        }

    }

相关文章

网友评论

      本文标题:LinkedList源码实现 get方法

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