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>
LinkedList类
 

Queue接口定义的方法
LinkedList类
 

LinkedList中操作链表的部分方法
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、
 * */
}