java 集合LinkedList

LinkedList 内部是用双向链表实现的。可以为空,可以重复,是有序的,线程不安全。

实现原理

属性: 

1.size 长度

2.node<E> first 第1各元素

3.node<E> last 最后一个元素

 

内部类

Node<E> 里面有3个属性,E element, Node<E> pre, Node<E> next; 构造方法NOde(Node pre,E e,Node next)

 

方法

#增

1.add(E e)  默认是往链表的最后一个添加元素。所以我们要获取最后一个元素、然后new一个node出来,new的时候用Node<E>的构造方法,参数是(last,E,null)因为之前获取最后一个元素,放在我new的元素前一个,然后第2个参数就是当前元素的值,因为加在最后一个所以next默认是null。然后 我们要判断刚刚获取的最后一个元素是不是null,如果是null的,证明他是第1次加入链表里面,所以我们这个时候要把 属性first 给刚刚新new出来的对象。如果不是null,那么我们刚刚获取最后一个元素的next指向new出来的对象。最后size++就可以了

#查询

 2.get(index) 根据索引获取,这边用到1次2分法查询。先判断 index 和 size>>1 比较,如果index> siez>>1的话,那么就表示要查询的index在size/2的下半段。那这样只要循环下半段,如果小于的话,那就在上半段。只要循环上半段,

 

3删除

reomve(index)  这边记得 最后要把删的元素设置成null

 

posted @ 2018-04-11 10:08  tangw  阅读(134)  评论(0编辑  收藏  举报