LinkList
- LinkedList底层实现了双向链表和双端队列特点.
- 可以添加任意元素(元素可以重复),包括null。
- 线程是不安全的。没有实现同步。
LinkList底层操作机制
1)LinkedList底层维护了一个双向链表
2)LinkedList中维护了两个属性first和last分别指向首节点和尾节点
3)每个节点里面又维护了prev、next、item三个属性,(Node对象)通过next指向后一个节点。prev指向前一个,最终实现双向链表
4)所以LinkedList的元素的添加和删除,不是通过数组完成的,相对来说效率较高
package List.LinkedList;
import java.util.LinkedList;
import java.util.List;
/**
* LinkedList底层实现了双向链表
*/
public class LinkedList_ {
public static void main(String[] args) {
Node jack = new Node("jack");
Node tom = new Node("tom");
Node lqh = new Node("小陆");
jack.next = tom;
tom.next = lqh;
lqh.pre = tom;
tom.pre = jack;
Node first = jack;//让first引用指向jack,就是双向链表的头结点
Node last = lqh; //让last引用指向hsp,就是双向链表的尾结点
//演示,从头到尾进行遍历
System.out.println("===从头到尾进行遍历===");
while (true) {
if (first == null) {
break;
}
System.out.println(first);
first = first.next;
}
//演示,从尾到头的遍历
System.out.println("====从尾到头的遍历====");
while (true) {
if (last == null) {
break;
}
//输出last 信息
System.out.println(last);
last = last.pre;
}
Node ls = new Node("刘舒");
ls.next &