Java集合框架之LinkedList-----用LinkedList模擬隊列和堆棧


 

 

 

 

 

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 args
26      */
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());
        }
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM