java.util.Stack

本文深入解析Java中Stack集合的特性与应用,包括其LIFO原则、与Vector的集成,以及empty、peek、pop、push和search等方法的使用。通过示例代码展示如何操作Stack,适用于命令撤销等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Stack是栈,符合LIFO(last in first out)原则。所以对于类似执行了一连串的命令,然后需要撤销的这种场景,使用它比较合适。

Stack集成Vector,所以用法跟Vector和List等集合类似。

Stack有些独有的方法:

empty() : 检查Stack集合是否是空了,空的话返回true,否则返回false;

peek() : 返回Stack集合里最顶端的对象,也就是最后加入到集合中的对象。

pop()  :   返回Stack集合里面最顶端的对象,并将该对象从集合中弹出或者删除,执行后,集合的大小-1.

push()  : 往Stack集合中添加对象

search() :  返回查询到集合中第一个对象的位置,用的比较的方法也是跟集合中的对象进行equals比较

 

简单的示例如下:

public class TestStack {

    public static void main(String[] args) {
        Stack<String> stack = new Stack<>();
        stack.push("1111");
        stack.push("2222");
        stack.push("3333");
        stack.push("4444");
        System.out.println(stack.peek());
        System.out.println(System.lineSeparator());
        
        System.out.println(stack.search("4444"));
        System.out.println(System.lineSeparator());

        for(int i=0;i<4;i++){
            System.out.println("i="+i+"   stack="+stack.pop());
            System.out.println(stack.empty()?"":stack.peek());
        }
        System.out.println(System.lineSeparator());
        System.out.println(stack.empty());
    }
}

输出结果如下:

4444


1


i=0   stack=4444
3333
i=1   stack=3333
2222
i=2   stack=2222
1111
i=3   stack=1111



true

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值