java核心基础--jdk源码分析学习--LinkedList
2017-12-13 09:34
465 查看
java.util.LinkedList
1. 内部由内部类Node存储单节点数据,双向循环链表
private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } }
2. 注意看node(int index)
查找指定index索引位置的node节点不是从表头或表尾遍历链表先判断index是在链表的前半部分还是后半部分
然后觉得从表头或表尾遍历链表(好想法)
Node<E> node(int 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; } }
3. 增删改查效率,参考对链表的操作
相关文章推荐
- java核心基础--jdk源码分析学习--基本数据类型
- java核心基础--jdk源码分析学习--TreeMap
- java核心基础--jdk源码分析学习--Hashtable
- java核心基础--jdk源码分析学习--String
- java核心基础--jdk源码分析学习--Integer
- java核心基础--jdk源码分析学习--ArrayList
- java核心基础--jdk源码分析学习--HashMap
- java核心基础--jdk源码分析学习--HashSet
- Java Collections Framework之Stack源码分析缺陷,栈改进版(通过LinkedList实现)(基于JDK1.6)
- JDK源码学习之TreeMap.java分析
- 【JAVA基础】集合类源码分析_LinkedList
- java基础提高篇--集合源码分析--jdk1.8 HashMap源码
- java8学习之Collector源码分析与收集器核心
- java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- Java基础:JDK动态代理源码分析
- java学习之旅63常用类_包装类_Integer_Number_JDK源码分析
- 【Java基础】Java学习之ArrayList源码常用方法分析
- java学习之旅57、58--数组_StringBuilder和StringBuffer的使用_JDK源码分析内部机制、常用方法补充_常见面试题答法
- java学习之旅56--数组_StringBuilder和StringBuffer的使用_常用方法_方法链的实现_JDK源码分析
- java学习之旅65--常用类_Date类的使用_JDk源码分析