栈
构造:
Stack<Integer> stack = new Stack<Integer>();
方法:
push()
pop()
peek()
stack.pop()和stack.peek()的区别
相同点:都返回栈顶的值。
不同点:peek 不改变栈顶的值(不删除栈顶的值),pop会把栈顶的值删除。
队列
方法:
add()
poll()
peek()
Queue接口中几种类似方法的区别:
- add() 和 offer()
add() : 添加元素,如果添加成功则返回true,如果队列是满的,则抛出异常
offer() : 添加元素,如果添加成功则返回true,如果队列是满的,则返回false
区别:对于一些有容量限制的队列,当队列满的时候,用add()方法添加元素,则会抛出异常,用offer()添加元素,则返回false - remove() 和 poll()
remove() : 移除队列头的元素并且返回,如果队列为空则抛出异常
poll() : 移除队列头的元素并且返回,如果队列为空则返回null
区别:在移除队列头元素时,当队列为空的时候,用remove()方法会抛出异常,用poll()方法则会返回null - element() 和 peek()
element() :返回队列头元素但不移除,如果队列为空,则抛出异常
peek() :返回队列头元素但不移除,如果队列为空,则返回null
区别 :在取出队列头元素时,如果队列为空,用element()方法则会抛出异常,用peek()方法则会返回null