欢迎光临
我们一起进阶

Java 集合(十四):Stack

扫码或搜索:沉默王二
发送 290992
即可立即永久解锁本站全部文章

堆栈(Stack)是一种 “后进先出” (LIFO) 的数据结构, 只能在一端进行插入(称为 “压栈” ) 或删除 (称为“出栈”)数据的操作。

java.util.Stack 类继承了 Vector,导致它广受抨击,后面我们再说。

 public class Stack extends Vector

来看看 Stack 常用的接个方法:

1、push(item) 把参数 item 压入栈顶。
     
2、pop() 移除栈顶 item。

3、peek() 查看栈顶 item 而不移除它。

4、empty() 测试堆栈是否为空。

  1. search(Object o) 返回对象在堆栈中的位置
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(); //换行
    }
}

输出结果:

 1 11111, absdder, 29999.3 三个元素入栈
 2 堆栈中的元素:11111 
 3 堆栈中的元素:11111 absdder 
 4 堆栈中的元素:11111 absdder 29999.3 
 5 元素absdder在堆栈的位置2
 6 元素11111在堆栈的位置3
 7 11111, absdder, 29999.3 三个元素出栈
 8 元素29999.3出栈
 9 堆栈中的元素:11111 absdder 
10 元素absdder出栈
11 堆栈中的元素:11111 
12 元素11111出栈
13 堆栈是空的,没有元素
赞(0) 打赏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

小白学堂,学的不止是技术,更是前程

关于我们免责声明

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏