java 中 pop 和 peek 方法区别

相同点:都返回栈顶的值。
不同点: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

上一篇:用两个栈实现队列


下一篇:Java对象在堆栈的分配