栈和队列的实现
实现类使用实现了Deque
接口的类,如ArrayQueue
或LinkedList
,性能上ArrayQueue
占优
栈的实现
使用Deque
接口,ArrayDeque
实现类
Deque<String> stack = new ArrayDeque<>();
stack.push("a");
stack.push("b");
stack.push("c");
while (stack.peek() != null) {
System.out.println(stack.pop());
}
输出结果
c
b
a
队列的实现
使用Queue
接口,ArrayDeque
实现类
add
和remove
方法,失败抛异常
Queue<String> queue = new ArrayDeque<>();
queue.add("d");
queue.add("e");
queue.add("f");
while (queue.peek() != null) {
System.out.println(queue.remove());
}
offer
和poll
方法,失败返回特殊值,如false
和null
Queue<String> queue = new ArrayDeque<>();
queue.offer("d");
queue.offer("e");
queue.offer("f");
while (queue.peek() != null) {
System.out.println(queue.poll());
}
输出结果
d
e
f
element
方法可替代peek
方法,区别为element
方法失败抛异常,peek
方法失败返回null
Queue接口方法总结
入队
add
,插入队尾,失败抛异常offer
,插入队尾,失败返回特殊值false
出队
remove
,从队头移出,失败抛异常poll
,从队头移出,失败返回特殊值null
查看
element
,查看队头,失败抛异常peek
,查看队头,失败返回特殊值null
Deque接口方法总结
入队
addFirst
插入队头,失败抛异常addLast
插入队尾,失败抛异常,相当于Queue
接口的add
offerFirst
插入队头,失败返回特殊值false
offerLast
插入队尾,失败返回特殊值false
,相当于Queue
接口的offer
出队
removeFirst
从队头移出,失败抛异常,相当于Queue
接口的remove
removeLast
从队尾移出,失败抛异常pollFirst
从队头移出,失败返回特殊值null
,相当于Queue
接口的poll
pollLast
从队尾移出,失败返回特殊值null
查看
getFirst
查看队头,失败抛异常,相当于Queue
接口的element
getLast
查看队尾,失败抛异常peekFirst
查看队头,失败返回特殊值null
,相当于Queue
接口的peek
peekLast
查看队尾,失败返回特殊值null
栈操作
push
压入栈,相当于addFirst
,失败抛异常pop
从栈弹出,相当于removeFirst
,失败抛异常peek
查看栈顶,失败返回特殊值null
PREVIOUSNginx配置
NEXTRedis运行Lua脚本