相同点:都返回栈顶的值。
不同点:peek 不改变栈的值(不删除栈顶的值),pop会把栈顶的值删除。
下面通过代码展现
/* * 文 件 名: TestPeekAndPopDiff.java */ import java.util.List; import java.util.Stack; /** * @author * @since */ public class TestPeekAndPopDiff { public static void main(String[] args) { Stack<Integer> stack1 = new Stack<>(); Stack<Integer> stack2 = new Stack<>(); // 将1,2,3,4,5添加到栈中 for (int i = 1; i < 6; i++) { stack1.push(i); stack2.push(i); } stack1.peek(); stack2.pop(); System.out.println("peek stack1:"); iteratorThroughRandomAccess(stack1); System.out.println("pop stack2:"); iteratorThroughRandomAccess(stack2); } /** * 通过快速访问遍历Stack */ public static void iteratorThroughRandomAccess(List list) { Integer val = 0; for (int i = 0; i < list.size(); i++) { val = (Integer) list.get(i); System.out.print(val + " "); } System.out.println(); } // 相同点:都返回栈顶的值。 // 不同点:peek 不改变栈的值(不删除栈顶的值),pop会把栈顶的值删除。 }
输出结果:
peek stack1:
1 2 3 4 5
pop stack2:
1 2 3 4