【Java類集】_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介面定義方法:
No. 方法 類型 描述
1 boolean add(E e) 普通 將指定的元素插入此鏈表結尾(如果立即可行且不會違反容量限制),在成功時返回 true,如果當前沒有可用的空間,則拋出 IllegalStateException。
2 E element() 普通 擷取鏈表的表頭,但是不移除此隊列的頭。
3 boolean offer(E e) 普通 將指定的元素插入此鏈表的結尾(如果立即可行且不會違反容量限制),當使用有容量限制的隊列時,此方法通常要優於 add(E),後者可能無法插入元素,而只是拋出一個異常。
4 E peek() 普通 擷取但不移除此隊列的頭;如果此隊列為空白,則返回 null。
5 E poll() 普通 擷取並移除此隊列的頭,如果此隊列為空白,則返回 null。
6 E remove() 普通 擷取並移除此隊列的頭。
LinkedList中操作鏈結表的部分方法
No. 方法 類型 描述
1 public void addFirst(E o) 普通 在鏈表開頭增加元素
2 public void addLast(E o) 普通 在鏈表結尾增加元素
3 public boolean offer(E o) 普通 將指定元素增加到鏈表的結尾
4 public E removeFirst() 普通 刪除鏈表的第一個元素
5 public E removeLast() 普通 刪除鏈表的最後一個元素
LinkedList 本身大量的擴充了Queue介面和List介面的操作。所以,在使用時最好直接使用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); link.addFirst("X"); link.addLast("Y"); System.out.println("增加頭和尾之後鏈表:"+link); }}
輸出:
初始化鏈表:[A, B, C]
增加頭和尾之後鏈表:[X, A, B, C, Y]
對於鏈表也可以找到其表頭(直接Queue提供的方法)
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("1-3、peek()方法找到表頭:"+link.peek()); System.out.println("1-4、找完之後的鏈表內容:"+link); System.out.println("1-5、poll()方法找到表頭:"+link.poll()) System.out.println("1-6、找完之後的鏈表內容:"+link); }}
輸出:
1-1、element()方法找到表頭A
1-2、找完之後的鏈表內容:[A, B, C]
1-3、peek()方法找到表頭:A
1-4、找完之後的鏈表內容:[A, B, C]
1-5、poll()方法找到表頭:A
1-6、找完之後的鏈表內容:[B, C]