package seday12;
import java.util.LinkedList;
import java.util.Queue;
/**
* @author xingsir
* 队列可以保存一组元素,但是存取元素必须遵循先进先出。java.util.Queue 接口
* Queue继承自Collection,队列定义了存取元素的相关方法。 常用实现类:java.util.LinkedList
*/
public class QueueDemo {
public static void main(String[] args) {
Queue<String> queue=new LinkedList<>();
//入队操作,将元素添加到队列末尾
queue.offer("A");
queue.offer("B");
queue.offer("C");
queue.offer("D");
queue.offer("E");
System.out.println(queue);//打印结果为 [A, B, C, D, E]
String str2 =queue.peek();// peek 引用队首元素* 获取队首元素,但是不做删除操作
System.out.println(str2);// 打印结果为:A
System.out.println(queue);// 打印结果为:[A, B, C, D, E]
String str1 =queue.poll();// poll 出队操作 获取并删除当前队列的队首元素
System.out.println(str1);//结果:[A, B, C, D, E]
System.err.println(queue);//[B, C, D, E]
/*
* 遍历队列,使用迭代器遍历后,元素还是在队列当中的。
*/
for( String str3:queue) {
System.out.println(str3);
}
System.out.println(queue);//打印 [B, C, D, E]
}
}
//==================================================================================
package seday12;
import java.util.Deque;
import java.util.LinkedList;
/**
* @author xingsir
* java.util.Deque 双端队列
* Deque继承自Queue, 双端队列是两端都可以进出队的队列。常用实现类:LinkedList
*/
public class DequeDemo {
public static void main(String[] args) {
Deque<String> deque=new LinkedList<>();
deque.offer("A");
deque.offer("B");
deque.offer("C");
System.out.println(deque);//[A, B, C]
deque.offerFirst("D");//从前面加入D
System.out.println(deque);//[D, A, B, C]
deque.offerLast("E");//后面加入E
System.out.println(deque);//[D, A, B, C, E]
String str = deque.poll();// poll 出队操作 获取并删除当前队列的队首元素
System.out.println(str);//D
System.out.println(deque);//打印[A, B, C, E]
str = deque.pollFirst();// pollFirst 获取第一位并删除当前队列的队首元素
System.out.println(str);//打印A
System.out.println(deque);//打印[B, C, E]
str = deque.pollLast();// poll 获取最后一位并删除当前队列的队首元素
System.out.println(str);//打印E
System.out.println(deque);//打印[B, C]
}
}