Java中的栈:java.util.Stack类

public class Stack<E>extends Vector<E>
Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。

 方法 使用说明
boolean empty() 测试堆栈是否为空
E peek() 查看堆栈顶部的对象,但不从堆栈移除
E push(E item) 移除堆栈顶部的对象,并返回该对象
int search(Object o) 返回对象在堆栈的位置,以1为基数 

下面是使用的例子

public class JavaStack {
    public static void main(String[] args) {
        Stack stack = new Stack();
        stack.push(new Integer(100));
        printStack(stack);  

        stack.push("thisstring");
        printStack(stack);

        stack.push(new Double(190.3));
        printStack(stack);  

        stack.push("secondstring");
        printStack(stack);

        System.out.println("元素thisstring在堆栈的位置:"+stack.search("thisstring"));

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

    }

    private static void printStack(Stack<Integer> stack ){
        if (stack.empty())
            System.out.println("堆栈是空的,没有元素");
            else
            {
                System.out.print("堆栈中的元素:");
                Enumeration items = stack.elements();
                while (items.hasMoreElements())
                    System.out.print(items.nextElement()+" ");
            }
        System.out.println();
    }
}
时间: 2024-10-12 02:21:12

Java中的栈:java.util.Stack类的相关文章

java.util.Stack类中的peek()方法

java.util.stack类中常用的几个方法:isEmpty(),add(),remove(),contains()等各种方法都不难,但需要注意的是peek()这个方法. peek()查看栈顶的对象而不移除它. import java.util.Stack; public class MyStack1 { private Stack<Integer> stackData; private Stack<Integer> stackMin; public MyStack1(){ t

Java中数组操作 java.util.Arrays 类常用方法的使用

任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的.下面介绍一下Arrays类最常用的几个方法. 1.  数组排序 Arrays工具类提供了一个sort方法,只需要一行代码即可完成排序功能. 2.  数组转换为字符串 Arrays提供了一个toString方法,可以直接把一个数组转换为字符串,这样可以方便观察数组里的元素. //来源:公众号[时光与

浅谈Java中的栈和堆

人们常说堆栈堆栈,堆和栈是内存中两处不一样的地方,什么样的数据存在栈,又是什么样的数据存在堆中? 这里浅谈Java中的栈和堆 首先,将结论写在前面,后面再用例子加以验证. Java的栈中存储以下类型数据,栈对应的英文单词是Stack 基本类型 引用类型变量 方法 Java的堆中存储以下类型数据,堆对应的英文单词是Heap 实例对象 在函数中定义的一些基本类型的变量(8种)和对象的引用变量都是在函数的栈Stack内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当

全面解释java中StringBuilder、StringBuffer、String类之间的关系

http://www.jb51.net/article/33398.htm String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象,StringBuffer和StringBuilder类功能基本相似 1. String 类  String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不

Java中如何使封装自己的类,建立并使用自己的类库?

转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你肯定会想:如何自己的写的一些常用的类积累起来,生成自己的类库?如果是这样的话,很庆幸,你遇到通道中人了,因为我也是这样做的.下面就介绍一下我是怎么做的吧 一.先来明白一下关于classpath和path的概念 path是java中用来进行编译和运行的程序所在的路径,而classpath是类所在的路径

java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)

class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } } 运行: [[email protected] java

java中只能有一个实例的类的创建

Java中,如果我们创建一个类,想让这个类只有一个对象,那么我们可以 1:把该类的构造方法设计为private 2:在该类中定义一个static方法,在该方法中创建对象 package test; /* * 有时候我们希望一个类在任何时候都只有一个实例,这时候可以把该类设计为单例模式. * 要将一个类设计为单例模式,需要: * 1:把该类的构造方法的访问修饰符生命为private * 2:然后在该类中定义一个static方法,在该方法中创建类的对象 * * */ public class Sin

java.util.Stack类简介

Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来 Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用 E push(E item)      把项压入堆栈顶部. E pop()        移除堆栈顶部的对象,并作为此函数的值返回该对象. E peek()          查看堆栈顶部的对象,但不从堆栈中移除它. boolean empty()         测试堆栈是否为空. int sea

Java中的栈

学习了一段时间的JAVA,在这里对最近几次课程所学的 ' 栈 ' 进行总结. 关于栈 栈(Stack)是一种只能在一端进行插入和删除操作的特殊线性表. 它具有 ' 后进先出(LIFO)' 的特性. 关于 Stack 类 Stack类继承Vector类 下表是Stack类的几种方法 boolean empty()           测试堆栈是否为空. E peek()           查看堆栈顶部的对象,但不从堆栈中移除它. E pop()           移除堆栈顶部的对象,并作为此函