当前位置: 首页 > news >正文

Java基础(七):栈 Stack(使用方法详解)

Java Stack 类

栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

Stack()

除了由Vector定义的所有方法,自己也定义了一些方法:

序号方法描述
1boolean empty() 测试堆栈是否为空。
2Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。
3Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。
4Object push(Object element) 把项压入堆栈顶部。
5int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。

实例

下面的程序说明这个集合所支持的几种方法

实例

import java.util.*;
 
public class StackDemo {
 
    static void showpush(Stack<Integer> st, int a) {
        st.push(new Integer(a));
        System.out.println("push(" + a + ")");
        System.out.println("stack: " + st);
    }
 
    static void showpop(Stack<Integer> st) {
        System.out.print("pop -> ");
        Integer a = (Integer) st.pop();
        System.out.println(a);
        System.out.println("stack: " + st);
    }
 
    public static void main(String args[]) {
        Stack<Integer> st = new Stack<Integer>();
        System.out.println("stack: " + st);
        showpush(st, 42);
        showpush(st, 66);
        showpush(st, 99);
        showpop(st);
        showpop(st);
        showpop(st);
        try {
            showpop(st);
        } catch (EmptyStackException e) {
            System.out.println("empty stack");
        }
    }
}

以上实例编译运行结果如下:

stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack

相关文章:

  • Java基础(六):HashMap(使用方法详解)
  • Java基础 (三):LinkedList(含使用方法详解)
  • Java基础(二):迭代器(Iterator)(含使用方法详解)
  • Java基础(一):Java集合框架(超详细解析,看完面试不再怕)
  • 【LeetCode】206.反转链表(动图解析,双指针+递归,java实现)
  • 【LeetCode】21.合并两个有序列表(递归+迭代,java实现,含gif动图)
  • 一套通用的Java后台管理系统,采用springboot实现(附带源码地址)
  • HashMap方法之computeIfAbsent()用法详解,含案例分析
  • 【LeetCode】219.存在重复元素 II (四种解法开拓思路,java实现)
  • 【LeetCode】49.字母异位词分组 (三种解法开拓思路,java实现)
  • 【LeetCode】36.有效的数独 (一次迭代,使用哈希表,java实现)
  • 一文搞定java集合框架,四万字图文详解,深入分析源码,请带着耐心点进来!
  • VScode 结合git的全面使用流程,再也不用记住git的命令了!
  • 校招(含实习生春招)指南
  • 来自鹅厂师兄发自内心的建议,送给迷茫的工作者
  • SegmentFault for Android 3.0 发布
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • css系列之关于字体的事
  • PAT A1017 优先队列
  • python 装饰器(一)
  • SQLServer之创建显式事务
  • 浮现式设计
  • 后端_MYSQL
  • 数据可视化之 Sankey 桑基图的实现
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​业务双活的数据切换思路设计(下)
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • ###C语言程序设计-----C语言学习(3)#
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)(1.9) MSP (version 4.2)
  • (9)STL算法之逆转旋转
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (补)B+树一些思想
  • (多级缓存)多级缓存
  • (附源码)php投票系统 毕业设计 121500
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • ***检测工具之RKHunter AIDE
  • .net 4.0发布后不能正常显示图片问题
  • .Net core 6.0 升8.0
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET NPOI导出Excel详解
  • .Net Remoting常用部署结构
  • .NET 依赖注入和配置系统
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NetCore项目nginx发布
  • .NET关于 跳过SSL中遇到的问题
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @GetMapping和@RequestMapping的区别