java-佇列,雙端佇列、棧
阿新 • • 發佈:2019-02-10
import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;
/**
* java.util.Queue 佇列,可以儲存一組元素,但是存取元素必須遵循先進先出原則 JDK
*
* @author samsung
*
*/
public class QueueDemo {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<String>();
/**
* 入隊操作 boolean offer(E e):將一個物件新增到隊尾,新增成功返回true
*/
queue.offer("one");
queue.offer("two");
queue.offer("three");
System.out.println("入隊:");
System.out.println(queue);// [one, two, three]
/**
* 出隊操作 從隊首獲取元素,獲取後該元素就從佇列中給移除 E poll():從隊首刪除並返回一個元素
*/
String str = queue.poll();
System.out.println("出隊:" );
System.out.println(str);
System.out.println(queue);// [two, three]
/**
* 獲取隊首元素 E peek():返回隊首元素(但是不刪除)
*/
String str1 = queue.peek();
System.out.println(str1);
System.out.println(queue);
System.out.println("開始遍歷");
for (String e : queue) {
System.out.println(e + " " );
}
while (queue.size() > 0) {
System.out.println(queue.poll() + " ");
}
/**
* java.util.Deque 雙端佇列 兩端都可以進出佇列 雙端佇列介面繼承自佇列介面(Queue)
* boolean offer(E e):將一個物件新增到隊尾,新增成功返回true
* boolean offerFirst(E e):將一個物件新增到隊首,新增成功返回true boolean offerLast(E e):將一個物件新增到隊尾,新增成功返回true
*
* E poll():從隊首刪除並返回一個元素 E pollFirst():從隊首刪除並返回一個元素 E
* pollLast():從隊尾刪除並返回一個元素
*
* E peek():返回隊首元素(但是不刪除)
*
*/
Deque<String> deque = new LinkedList<String>();
deque.offer("a");
deque.offer("aa");
deque.offerFirst("b");// 從隊首新增
deque.offerLast("c");// 從隊尾新增
System.out.println(deque);// [b, a, aa, c]
/**
* 如果將Deque限制為只能從一端進和出,則可以實現 棧(Stack) 入棧:push(offerFirst)
* 出棧:pop(pollFirst) 棧遵循先進後出(FILO)原則
*/
Deque<String> stack = new LinkedList<String>();
stack.push("1");//入棧
stack.push("2");
stack.push("3");
System.out.println("棧:" + stack);// 棧:[3, 2, 1]
while (stack.size() > 0) {
System.out.println(stack.pop());//出棧
}
System.out.println(stack);// []
}
}