Java教程
+ -

Java Stack 类

2019-09-09 2 0

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

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

Stack()

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

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

0 篇笔记 写笔记

ObjectiveC break语句
Objective-C编程语言中的break语句有以下两种用法 -当在循环内遇到break语句时,循环立即终止,程序控制在循环后的下一个语句处重新开始。它可以用于在switch语句中终止一个case(在下一章中介绍)。如果使用嵌套循环(即另一个循环中的一个循环),break语句将停止执行最内层循环并......
ObjectiveC 简介
Objective-C,Objective C入门,Objective C教程,ObjectiveObjective-C是一种通用的,面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中。它是苹果公司用于OSX和iOS操作系统及其API(Cocoa和Cocoa Touch)的主......
ObjectiveC 数据类型
Objective-C编程语言中,数据类型是指用于声明不同类型的变量或函数的扩展系统。 变量的类型决定了它在存储中占用的空间大小以及如何解释存储的位模式。Objective-C中的类型可分为以下几类 -编号类型描述 1基本类型它们是算术类型,由两种类型组成:(a)整数类型和(b)浮点类型。 2......
Python3 列表remove()方法
remove() 函数用于移除列表中某个值的第一个匹配项。语法remove()方法语法:list.remove(obj)参数obj — 列表中要移除的对象。返回值该方法没有返回值但是会移除两种中的某个值的第一个匹配项。实例以下实例展示了 remove()函数的使用方法:#!/usr/bin/pyth......
ObjectiveC do...while循环
与for循环和while循环在顶部测试循环条件不同,Objective-C编程语言中的do…while循环检查循环底部的条件。do…while循环类似于while循环,但是do…while循环保证至少执行一次。语法Objective-C编程语言中do…while循环的语法是 -do { stat......
Java Applet 基础
Applet 是一种 Java 程序。它一般运行在支持 Java 的 Web 浏览器内。因为它有完整的 Java API支持,所以Applet是一个全功能的 Java 应用程序。如下所示是独立的 Java 应用程序和 applet 程序之间重要的不同:Java 中 Applet 类继承了 java.......
Ruby 方法
Ruby 方法与其他编程语言中的函数类似。Ruby 方法用于捆绑一个或多个重复的语句到一个单元中。方法名应以小写字母开头。如果您以大写字母作为方法名的开头,Ruby 可能会把它当作常量,从而导致不正确地解析调用。方法应在调用之前定义,否则 Ruby 会产生未定义方法调用异常。语法def metho......
Python3 字符串ljust()方法
ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。语法ljust()方法语法:str.ljust(width[, fillchar])参数width — 指定字符串长度。fillchar — 填充字符,默认为空格。返回值返......
Python3 os.fstat() 方法
os.fstat() 方法用于返回文件描述符fd的状态,类似 stat()。Unix,Windows上可用。fstat 方法返回的结构:st_dev: 设备信息st_ino: 文件的i-node值st_mode: 文件信息的掩码,包含了文件的权限信息,文件的类型信息(是普通文件还是管道文件,或者是其......
Perl 面向对象
Perl 中有两种不同地面向对象编程的实现:一是基于匿名哈希表的方式,每个对象实例的实质就是一个指向匿名哈希表的引用。在这个匿名哈希表中,存储来所有的实例属性。二是基于数组的方式,在定义一个类的时候,我们将为每一个实例属性创建一个数组,而每一个对象实例的实质就是一个指向这些数组中某一行索引的引用。在......
Python3 字典popitem() 方法
Python 字典 popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。如果字典已经为空,却调用了此方法,就报出KeyError异常。语法popitem()方法语法:popitem()参数无返回值返回一个键值对(key,value)形式。实例以下实例展示了 popitem()......
Python3 os.stat() 方法
os.stat() 方法用于在给定的路径上执行一个系统 stat 的调用。语法stat() 方法语法格式如下:os.stat(path)参数path -- 指定路径返回值stat 结构:st_mode: inode 保护模式st_ino: inode 节点号。st_dev: inode 驻留的设备。......
Java rint() 方法
rint() 方法返回最接近参数的整数值。语法该方法有以下几种语法格式:double rint(double d)参数double 原始数据类型。返回值返回 double 类型数组,是最接近参数的整数值。实例实例public class Test{ public static void mai......
Python3 File write() 方法
write() 方法用于向文件中写入指定字符串。在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的。如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错:TypeError: a bytes-like......
Python3 os.fdatasync() 方法
os.fdatasync() 方法用于强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。如果你需要刷新缓冲区可以使用该方法。Unix上可用。语法fdatasync() 方法语法格式如下:os.fdatasync(fd);参数fd -- 文件描述符返回值该方法没有返回值。实......
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!