Java集合-ArrayList和LinkedList
2016-05-05 17:20
399 查看
ArrayList比较简单,实现结构是数组,不多说,网上一大堆。
LinkedList的特性不说了,自己看源码,贴出来一个牛逼的添加源码,LinkedList在指定位置添加一个元素的源码:
逻辑自己看!!!
只说一点,不管index是靠前,还是靠后,都是找到该位置后面的node节点,然后在其前面添加node节点!!!
LinkedList的特性不说了,自己看源码,贴出来一个牛逼的添加源码,LinkedList在指定位置添加一个元素的源码:
public void add(int index, E element) { checkPositionIndex(index); if (index == size) linkLast(element); else linkBefore(element, node(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; } } /** * Inserts element e before non-null Node succ. */ void linkBefore(E e, Node<E> succ) { // assert succ != null; final Node<E> pred = succ.prev; final Node<E> newNode = new Node<>(pred, e, succ); succ.prev = newNode; if (pred == null) first = newNode; else pred.next = newNode; size++; modCount++; }
逻辑自己看!!!
只说一点,不管index是靠前,还是靠后,都是找到该位置后面的node节点,然后在其前面添加node节点!!!
相关文章推荐
- SpringMVC+MyBatis
- 关于java编译时注解你需要知道的二三事。解除你的顾虑!
- Java 容器(四) Map
- java 经典范例
- eclipse提示功能错乱
- Java继承中方法的覆盖和重载
- 无聊写个好玩的——阿拉伯数字变中文数字
- Spring配置SessionFactory
- java.lang.NullPointerException错误处理方法及原因分析
- 用JNI实现java调用C
- java 线性规划 和lingo 比较
- Java线程通讯方法之wait()、nofity() 详解
- java日志信息 log4j配置详解
- Spring 事务支持
- java生成图片验证码--公用
- Java中throws和throw的区别讲解
- spring-从普通java类取得注入spring Ioc容器的对象的方案
- 【搜集,整理】Json与Java对象之间转换示例,详解
- c#与java的区别
- JAVA调用WebService实例