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

posted @   cavan丶keke  阅读(1222)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示