【Java類集】_LinkedList類筆記(執行個體親測)

來源:互聯網
上載者:User

【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]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.