LinkedList类
本章目标
掌握LinkedList与List接口的关系
掌握Queue接口的作用
LinkedList子类与Queue接口
LinkedList表示的是一个链表的操作类,此类定义如下:
——public class LinkedList<E> extends AbstractSequentialList<E>implements List<E>, Queue<E>, Cloneable, Serializable
Queue接口是Collection的子接口,此接口定义如下:
——public interface Queue<E> extends Collection<E>
Queue接口定义的方法
LinkedList中操作链表的部分方法
实例操作一:在链表的开头和结尾增加数据
import java.util.LinkedList;
public class LinkedListDemo01 {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<String>();
link.add("A");//向链表中增加数据
link.add("B");//向链表中增加数据
link.add("C");//向链表中增加数据
System.out.println("初始化链表:"+link);//输出链表内容,调用 toString()
link.addFirst("X");//在链表的表头增加内容
link.addLast("Y");//在链表的表头增加内容
System.out.println("增加头和尾之后的链表:"+link);//输出链表内容,调用 toString():
}
/* 结果:
* 初始化链表:[A, B, C]
* 增加头和尾之后的链表:[X, A, B, C, Y]
* */
}
实例操作二:找到链表头
import java.util.LinkedList;
public class LinkedListDemo02 {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<String>();
link.add("A");//向链表中增加数据
link.add("B");//向链表中增加数据
link.add("C");//向链表中增加数据
System.out.println("1-1、element() 方法找到表头:"+link.element());
System.out.println("1-2、找完之后的链表内容:"+link);
System.out.println("2-1、peek() 方法找到表头:"+link.peek());
System.out.println("2-2、找完之后的链表内容:"+link);
System.out.println("3-1、poll()方法找到表头"+link.poll());
System.out.println("3-2、找完之后的链表内容:"+link);
}
/* 结果:
* 1-1、element() 方法找到表头:A
* 1-2、找完之后的链表内容:[A, B, C]
* 2-1、peek() 方法找到表头:A
* 2-2、找完之后的链表内容:[A, B, C]
* 3-1、poll()方法找到表头A
* 3-2、找完之后的链表内容:[B, C]
* */
}
实例操作三:以先进先出的方式取出全部的数据
import java.util.LinkedList;
public class LinkedListDemo03 {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<String>();
link.add("A");//向链表中增加数据
link.add("B");//向链表中增加数据
link.add("C");//向链表中增加数据
System.out.print("以 FIFO 的方式输出:");//信息输出
for(int i=0; i<link.size()+2; i++){//循环输出
System.out.print(link.poll()+"、");//取得表头
}
}
/* 结果:
* 以 FIFO 的方式输出:A、B、C、
* */
}