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