zoukankan      html  css  js  c++  java
  • LinkedList 的get方法分析---java

    Java LinkedList.get() 获取元素

     

    Get(int)方法的实现在remove(int)中已经涉及过了。首先判断位置信息是否合法(大于等于0,小于当前LinkedList实例的Size),然后遍历到具体位置,获得节点的业务数据(element)并返回。

    方法

    get(int index):返回此列表中指定位置处的元素。
    getFirst():返回此列表的第一个元素。
    getLast():返回此列表的最后一个元素。
    indexOf(Object o):返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
    lastIndexOf(Object o):返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1

        public E get(int index) {
            checkElementIndex(index);
            return node(index).item;
        }
        private void checkElementIndex(int index) {
            if (!isElementIndex(index))
                throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
        }
        /**
         * Returns the (non-null) Node at the specified element index.
         */
        Node<E> node(int index) {
            // assert isElementIndex(index);
    
            if (index < (size >> 1)) {
                Node<E> x = first;
                for (int i = 0; i < index; i++)
                    x = x.next;
                return x;
            } else {
                Node<E> x = last;
                for (int i = size - 1; i > index; i--)
                    x = x.prev;
                return x;
            }
        }

    注意细节:位运算与直接做除法的区别。先将index与长度size的一半比较,如果index<size/2,就只从位置0往后遍历到位置index处,而如果index>size/2,就只从位置size往前遍历到位置index处。这样可以减少一部分不必要的遍历

  • 相关阅读:
    ResNet主要思想(总结)
    TensorFlow2_200729系列---24、一些卷积网络创新点
    Android GIS开发系列-- 入门季(1) 起点
    [官方]Beyond Compare里面 二进制比较的含义.
    Chrome 下载地址
    本地图文直接复制到网页编辑器中
    本地图文直接复制到在线编辑器中
    js+php分片上传大文件源码
    js+php分片上传大文件插件
    js+php分片上传大文件控件
  • 原文地址:https://www.cnblogs.com/chengpeng15/p/9877252.html
Copyright © 2011-2022 走看看