Java基礎學習筆記--常用API之LinkedList

package com.common.api;
import java.util.*;

/*
 * 	LinkedList鏈表特有的方法:
 * 		void addFirst(E e)  
 * 		void addLast(E e) 
 * 		E getFirst()   //獲取元素但不刪除元素,如果集合中沒有元素,會出現NoSuchelementException 
 * 		E getLast()  
 * 		E removeFirst() //獲取元素並刪除元素,如果集合中沒有元素,會出現NoSuchelementException 
 * 		E removeLast() 
 * 
 * 	在JDK1.6之後出現了以下替代方法
 * 		boolean offerFirst(E e) 在此列表的前面插入指定的元素。  
 *		boolean offerLast(E e) 在該列表的末尾插入指定的元素。  
 * 		E peekFirst() 檢索但不刪除此列表的第一個元素,如果此列表爲空,則返回 null 。 
 * 		E peekLast() 檢索但不刪除此列表的最後一個元素,如果此列表爲空,則返回 null 。  
 * 		E pollFirst() 檢索並刪除此列表的第一個元素,如果此列表爲空,則返回 null 。
 * 		E pollLast() 檢索並刪除此列表的最後一個元素,如果此列表爲空,則返回 null 。    
 * 
 * 	LinkedList 使用實例:
 * 
 * 	使用LinkedList模擬一個隊列或者堆棧的數據結構
 * 	堆棧:先進後出,First In Last Out
 * 	隊列:先進先出,First In First Out
 */

class Queue
{
	private LinkedList link;
	Queue()
	{
		link=new LinkedList();
	}
	
	public void add(Object obj)
	{
		link.addFirst(obj);
	}
	public Object get()
	{
		return link.removeLast();
	}
	public boolean isEmpty()
	{
		return link.isEmpty();
	}
}

public class LinkedListDemo {

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LinkedList link=new LinkedList();
		link.add("java01");
		link.add("java02");
		link.add("java03");
		link.add("java04");
		sop(link);
		
		LinkedList link2=new LinkedList();
		link2.addFirst("java01");
		link2.addFirst("java02");
		link2.addFirst("java03");
		link2.addFirst("java04");
		sop(link2);
		
		LinkedList link3=new LinkedList();
		link3.addLast("java01");
		link3.addLast("java02");
		link3.addLast("java03");
		link3.addLast("java04");
		sop(link3);
		
		sop(link.getFirst());
		sop(link.getLast());
		sop("link.size()="+link.size());
		sop(link.removeFirst());
		sop("link.size()="+link.size());
		sop(link);
		sop(link.getFirst());
		link.addFirst("Java01");
		sop(link);
		
		while(!link.isEmpty())
		{
			sop(link.removeFirst());
		}
		sop(link2);
		while(!link2.isEmpty())
		{
			sop(link2.removeLast());
		}
		
		Queue q=new Queue();
		q.add(10);
		q.add(20);
		q.add(30);
		q.add(40);
		sop(q.get());
		while(!q.isEmpty())
		{
			sop(q.get());
		}
	}
}

運行結果如下:

[java01, java02, java03, java04]
[java04, java03, java02, java01]
[java01, java02, java03, java04]
java01
java04
link.size()=4
java01
link.size()=3
[java02, java03, java04]
java02
[Java01, java02, java03, java04]
Java01
java02
java03
java04
[java04, java03, java02, java01]
java01
java02
java03
java04
10
20
30
40
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章