Java集合架構之LinkedList-----用LinkedList類比隊列和堆棧

來源:互聯網
上載者:User

標籤:

LinkedList的特有方法:

(一)添加方法

addFisrt(E e):將指定元素插入此列表的開頭。//參數e可以理解成Object對象,因為列表可以接收任何類型的對象,所以e就是Object對象(傳遞過程即向上轉型)。

addLast(E e):將指定元素插入此列表的結尾。

JDK1.6之後:

offerFirst();

offerLast();//其實前後的用法相同,換了一個名字而已。

(二):擷取元素方法(擷取過程不刪除鏈表元素):

getFirst();返回此列表的第一個元素。如果鏈表為空白,則拋出NoSuchElementException異常。

getLast();返回此列表的最後一個元素。

JDK1.6之後:

peekFirst();擷取鏈表的第一個元素,如果鏈表為空白則會返回null。

peekLast();

(三):擷取元素方法(擷取過程刪除鏈表元素):

removeFirst();擷取鏈表的第一個元素,並在鏈表中刪除該元素,如果鏈表為空白則拋出NoSuchElementException異常.

removeLast();

JDK1.6之後:

pollFirst();擷取鏈表的第一個元素,並在鏈表中刪除該元素,如果鏈表為空白則返回null.

pollLast();

具體代碼實現:

 1 package collection; 2 /* 3  * 用LinkedList類比隊列這一資料結構 4  */ 5 import java.util.LinkedList; 6  7 class Queue{//建立一個容器,對外提供可以使用容器的對象(調用容器中封裝的方法) 8     private LinkedList link; 9     public Queue(){10         link=new LinkedList();11     }12     public void myAdd(Object obj){13         link.offerLast((obj));14     }15     public Object myGet(){16         return link.pollFirst();17     }18     public boolean isNull(){19         return link.isEmpty();20     }21 }22 public class LinkedListTest {23 24     /**25      * @param args26      */27     public static void main(String[] args) {28 29         Queue dl=new Queue();30         dl.myAdd("abc0");31         dl.myAdd("abc1");32         dl.myAdd("abc2");33         dl.myAdd("abc3");34         while(!dl.isNull()){35         System.out.println(dl.myGet());36         }37     }38 39 }

總結上面的代碼:對外提供容器物件,容器中封裝的方法可以實現隊列先進先出(FIFO)的需求,調整其中封裝的方法,同樣可以實現堆棧先進後出這一種資料結構(FILO)。

 

package collection;/* * 用LinkedList類比隊列這一資料結構 */import java.util.LinkedList;class Queue{          //建立一個容器,對外提供可以使用容器的對象(調用容器中封裝的方法)    private LinkedList link;    public Queue(){        link=new LinkedList();    }    public void myAdd(Object obj){        link.offerLast((obj));    }    public Object myGet(){        return link.pollFirst();    }    public boolean isNull(){        return link.isEmpty();    }}public class LinkedListTest {    /**     * @param args     */    public static void main(String[] args) {        Queue dl=new Queue();        dl.myAdd("abc0");        dl.myAdd("abc1");        dl.myAdd("abc2");        dl.myAdd("abc3");        while(!dl.isNull()){        System.out.println(dl.myGet());        }    }}

 

Java集合架構之LinkedList-----用LinkedList類比隊列和堆棧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.