java.util.Queue 队列接口
- Queue继承自Collection,所以队列本身也是一种集合
- 队列可以保存一组元素,但是特点是存取元素必须遵循先进先出原则
- 常用实现类:java.util.LinkedList
offer方法:入队操作,元素会被追加到队列末尾
poll方法:出队操作,获取队首元素后该元素从队列中被删除
peek方法:引用队首元素,获取后该元素仍然在队列中
Queue<String> queue = new LinkedList<>();
queue.offer("one");
queue.offer("two");
queue.offer("three");
System.out.println(queue); //[one, two, three]
String str = queue.poll();
System.out.println(str); //one
System.out.println(queue); // [two, three]
str =queue.peek();
System.out.println(str); //two
System.out.println(queue); // [two, three]
栈结构
- 栈可以保存一组元素,但是存取元素必须遵循先进后出通常使用栈队列结构完成前进"后退"这样的功能使用
- Deque双端队列如果从同一侧做入队操作就实现了栈结构,因此Deque也称为栈提供它出入栈的经典方法:push,pop
push:入栈操作元素会被追加到栈首
pop:出栈操作,获取栈首元素后该元素从栈中被删除
Deque<String> stack = new LinkedList<>();
stack.push("one");
stack.push("two");
stack.push("three");
stack.push("four");
System.out.println(stack);
String str = stack.pop();
System.out.println(str); //[four, three, two, one]
System.out.println(stack); //[three, two, one]
双端队列接口:java.util.Deque
- Deque继承自Queue.特点是队列两端都可以做入队操作
- 常用的实现类:java.util.LinkedList
Deque<String>deque = new LinkedList<>();
deque.offer("one");
deque.offer("two");
deque.offer("three");
deque.offer("four");
System.out.println(deque);
deque.offerFirst("five"); //从队首方向入队
deque.offerLast("six"); //从队尾方向入队,与offer一致
String str = deque.poll(); //从队首方向出队
str = deque.pollFirst(); //从队首方向出队
str = deque.pollLast(); //从队尾方向出队