• 100个Java工具类之60:栈类Stack


    栈类Stack,包名是java.util.Stack,继承java.util.Vector类。

    栈是一种后进先出的数据结构,允许数据的动态插入和删除。

    下面是栈类Stack的几个主要用法。

    一、push(E item): 将元素 item 压入栈顶。

    1. Stack<Integer> stack = new Stack<>();
    2. stack.push(1);
    3. stack.push(2);

    二、pop(): 弹出栈顶元素,并返回该元素。

    1. Integer item = stack.pop();
    2. 输出:2

     

    三、peek(): 返回栈顶元素,但不删除该元素。

    1. Stack<Integer> stack = new Stack<>();
    2. stack.push(1);
    3. stack.push(2);
    4. Integer item = stack.peek();
    5. 输出:2

    四、isEmpty(): 检查栈是否为空。

    1. boolean isEmpty = stack.isEmpty();
    2. 输出:false

    五、search(Object o): 返回元素的索引

    1. Stack<Integer> stack = new Stack<>();
    2. stack.push(1);
    3. stack.push(2);
    4. int index = stack.search(2);
    5. 输出:1

    六、element(): 获取栈顶元素

    1. Stack<Integer> stack = new Stack<>();
    2. stack.push(1);
    3. stack.push(2);
    4. Enumeration<Integer> stackEnumeration = stack.elements();
    5. while (stackEnumeration.hasMoreElements()) {
    6. Integer element = stackEnumeration.nextElement();
    7. System.out.println(element);
    8. }
    9. 输出:1 2

     

    七、addElement(E item): 在栈顶添加一个元素

    addElement和push方法非常相似,区别在于新元素被放置的位置。

    使用push方法时,新元素位于栈顶;

    使用addElement方法时,新元素位于栈底。

    1. Stack<String> stack = new Stack<>();
    2. stack.addElement("张三");
    3. stack.addElement("李四");
    4. 输出:[张三, 李四]

     

    八、removeElement(Object obj): 删除元素。

    1. stack.removeElement("张三");
    2. 输出:[李四]

    九、elementAt(int index): 返回指定位置的元素。

    1. String element = stack.elementAt(0);
    2. 输出:李四

    注意:java.util.Stack类已经过时,取而代之的是java.util.Deque接口的实现类,例如:ArrayDeque 

  • 相关阅读:
    Python时间处理
    总结CSS常用的知识点以及SCSS语法
    opencalib中lidar2camera安装记录
    【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
    C++之10|50例学懂C++
    exe打包 帮我看一下怎么回事
    Serverless冷扩机器在压测中被击穿问题
    Spring Boot系列之条件注解
    记一次 .NET某报关系统 非托管泄露分析
    Execution failed for task ‘:app:javaPreCompileDebug‘.
  • 原文地址:https://blog.csdn.net/qq_21305943/article/details/132661569