堆栈是一种 “后进先出”  (LIFO) 的数据结构, 只能在一端进行插入(称为 “压栈” ) 或删除 (称为“出栈”)数据的操作。所以很适合逆序操作,JAVA 中,使用 java.util.Stack 类的构造方法创建对象。

Stack的基本方法

1. public push  (item )

把项 压入栈顶。其作用与 addElement (item ) 相同。参数 item 压入栈顶的项 。

返回: item 参数 ;

2. public pop ()

移除栈顶对象,并作为函数的值 返回该对象。

返回:栈顶对象(Vector 对象的中的最后一项)。

抛出异常 : EmptyStackException 堆栈为空。

3. public peek()

查看栈顶对象而不移除

返回:栈顶对象(Vector 对象的中的最后一项)。

抛出异常 : EmptyStackException 堆栈为空

4. public boolean empty (测试堆栈是否为空。)

当且仅当堆栈中不含任何项时 返回 true,否则 返回 false.

5. public int search  (object o)

返回对象在堆栈中位置, 以 1 为基数, 如果对象 o是栈中的一项,该方法返回距离 栈顶最近的出现位置到栈顶的距离;

参数: o 目标对象;

1 public static voidmain(String[] args) {2 Stack stack = new Stack(); //创建堆栈对象

3 System.out.println("11111, absdder, 29999.3 三个元素入栈");4 stack.push(new Integer(11111)); //向 栈中 压入整数 11111

5 printStack(stack); //显示栈中的所有元素

6

7 stack.push("absdder"); //向 栈中 压入

8 printStack(stack); //显示栈中的所有元素

9

10 stack.push(new Double(29999.3)); //向 栈中 压入

11 printStack(stack); //显示栈中的所有元素

12

13 String s = new String("absdder");14 System.out.println("元素absdder在堆栈的位置"+stack.search(s));15 System.out.println("元素11111在堆栈的位置"+stack.search(11111));16

17 System.out.println("11111, absdder, 29999.3 三个元素出栈"); //弹出 栈顶元素

18 System.out.println("元素"+stack.pop()+"出栈");19 printStack(stack); //显示栈中的所有元素

20 System.out.println("元素"+stack.pop()+"出栈");21 printStack(stack); //显示栈中的所有元素

22 System.out.println("元素"+stack.pop()+"出栈");23 printStack(stack); //显示栈中的所有元素

24 if(stack.empty())25 System.out.println("堆栈是空的,没有元素");26

27 }

java int stack_java Stack的使用相关推荐

  1. java int stack_java中int算法的有趣现象

    今天无意中发现一个怪事,当时没理解,后来跟网友讨论了才知道原理,是关于int值的加法算法,两段代码如下: 代码1: @Testpublic voidtest1() {int stackLength = ...

  2. java中的stack类和C++中的stack类的区别

    文章目录 1 java中的stack类和C++中的stack类的区别 1.1 java中的stack类 1.2 C++中的stack类 1.3 分析 不经意间想到了这个问题,存到栈中的是对象的引用,还 ...

  3. java中堆栈(stack)和堆(heap)

    http://www.ej38.com/showinfo/java-172156.html 堆栈是一种先进后出的数据结构,只能在一端进行输入或输出数据的操作  Stack类在java.util包中 向 ...

  4. java int不将0忽略_Java微服务:蛋糕是骗人的,但您不能忽略它

    java int不将0忽略 构建微服务实际上意味着什么? 通过微服务框架的眼光回答 忽略微服务的趋势已变得不可能. 有些人会说这只是另一个难以忍受的流行语,而另一些人会背诵打破巨石的优势或采取逆势方法 ...

  5. java为什么不推荐使用stack_栈和队列的面试题Java实现,Stack类继承于Vector这两个类都不推荐使用...

    在 thinking in java中看到过说Stack类继承于Vector,而这两个类都不推荐使用了,但是在做一到OJ题时,我用LinkedList来模拟栈和直接用Stack,发现在进行入栈出栈操作 ...

  6. Java集合之Stack(出自Java知识体系)

    安琪拉正在梳理Java知识体系,这篇讲Java集合的Stack.如果希望获取完整的<安琪拉Java知识体系>整理中, 完成后公众号回复"知识体系" 即可获取. 完整的J ...

  7. java int ==_Java 位运算符和 int 类型的实现

    其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.=.<= # 逻辑运算符 &&.||.! # 赋值运算符 =.运 ...

  8. Java String到int,Java int到String

    Today we will look at Java String to int conversion and then java int to String conversion. Java pro ...

  9. java int溢出,结果只会保留低32位,高位会抛弃掉

    今天做leetcode题目时,发现int mid = 536848900,但是mid*mid=484528144,我说为啥程序运行一直出错呢!! int mid = 536848900;System. ...

最新文章

  1. 南大计算机学硕复试,2019南大CS考研复试笔试回忆
  2. 大佬共话AI:“三马二宏”等亮相2020年世界人工智能大会
  3. 使用JQuery Autocomplete插件(一)
  4. 安卓无需root权限小黄鸟抓包教程
  5. 数据结构与算法 / 排序算法 / 基本概念
  6. Android回调的简单理解
  7. linux实验总结及心得_安全实验室 | 内网渗透—Linux权限维持技巧总结
  8. 互联网公司的安全风险
  9. 多进程通信相关函数归纳
  10. linux AWK中正则表达式
  11. 全面理解ADMM算法
  12. 计算机sci论文怎么写,计算机学院陈端兵教授分享SCI论文写作方法
  13. 坐标变换(1)—向量和坐标系
  14. 科技开发规划VBS屌丝暗色调
  15. opencv-python 对极几何
  16. 统计大写字符、小写字符、数字等个数
  17. 今日头条校招真题——头条校招
  18. 不是不给你,而是你承受不住
  19. ebox学习之SD fat 配置
  20. 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

热门文章

  1. 安卓逆向_22( 二 ) --- Xposed 学习记录
  2. 单元格格式_单元格格式的用法你知道吗~~
  3. android 遍历所有view,Android 算法:遍历ViewGroup找出所有子View
  4. golang 远程批量执行shell_S2061远程代码执行漏洞复现及批量检测脚本(CVE202017530)...
  5. 协议簇:TCP 解析:TCP 数据传输
  6. CoreData并发操作模式简介
  7. python调用ansysworkbench_Workbench通过Python设定材料参数
  8. lucene索引MySQL原因_我如何在数据库中存储Lucene索引?
  9. delstr函数python_Python Day26:多态、封装、内置函数:__str__、__del__、反射(反省)、动态导入模块...
  10. 华为云客户端_华为公布云手机计费清单,要不要光刻机也给出了答案