欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java堆栈类使用实例(java中stack的使用方法)

程序员文章站 2024-02-13 08:26:04
java 中,使用 java.util.stack 类的构造方法创建对象。  public class stack extends vector  ...

java 中,使用 java.util.stack 类的构造方法创建对象。

 public class stack extends vector

 构造方法 : public 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是栈中的一项,该方法返回距离 栈顶最近的出现位置到栈顶的距离; 栈中最上端项的距离为 1 。 使用equals 方法比较 o 与 堆栈中的项。。。  

参数: o 目标对象;

复制代码 代码如下:

/**
 * @author yuanli
 */
package thinkingjava;
import java.util.*;

import com.sun.org.apache.bcel.internal.generic.new;
/**
 *
 */
public class stacktest {

    /**
     * @param args
     */
    public static void main(string[] args) {
        stack stack = new stack(); // 创建堆栈对象
        system.out.println("11111, absdder, 29999.3 三个元素入栈");
        stack.push(new integer(11111)); //向 栈中 压入整数 11111
        printstack(stack);  //显示栈中的所有元素

        stack.push("absdder"); //向 栈中 压入
        printstack(stack);  //显示栈中的所有元素

        stack.push(new double(29999.3)); //向 栈中 压入
        printstack(stack);  //显示栈中的所有元素

        string s = new string("absdder");
        system.out.println("元素absdder在堆栈的位置"+stack.search(s));     
        system.out.println("元素11111在堆栈的位置"+stack.search(11111));

        system.out.println("11111, absdder, 29999.3 三个元素出栈"); //弹出 栈顶元素
        system.out.println("元素"+stack.pop()+"出栈");
        printstack(stack);  //显示栈中的所有元素
        system.out.println("元素"+stack.pop()+"出栈");
        printstack(stack);  //显示栈中的所有元素
        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(); // 得到 stack 中的枚举对象
                while (items.hasmoreelements()) //显示枚举(stack ) 中的所有元素
                    system.out.print(items.nextelement()+" ");
            }
        system.out.println(); //换行
    }
}