`
youyu4
  • 浏览: 440148 次
社区版块
存档分类
最新评论

java -- Stack

 
阅读更多

java -- Stack

 

 

    Stack是栈。继承于Vector,它的特性是:先进后出(FILO, First In Last Out)。



 

 

特点

 

  • 先进后出
  • Stack也是通过数组实现的,而非链表,Stack是继承于Vector。当然,我们也可以将LinkedList当作栈来使用

 

 

常用方法



 

 

 

代码示例

import java.util.Stack;
import java.util.Iterator;
import java.util.List;

/**
 * @desc Stack的测试程序。测试常用API的用法
 *
 * @author skywang
 */
public class StackTest {

    public static void main(String[] args) {
        Stack stack = new Stack();
        // 将1,2,3,4,5添加到栈中
        for(int i=1; i<6; i++) {
            stack.push(String.valueOf(i));
        }

        // 遍历并打印出该栈
        iteratorThroughRandomAccess(stack) ;

        // 查找“2”在栈中的位置,并输出
        int pos = stack.search("2");
        System.out.println("the postion of 2 is:"+pos);

        // pup栈顶元素之后,遍历栈
        stack.pop();
        iteratorThroughRandomAccess(stack) ;

        // peek栈顶元素之后,遍历栈
        String val = (String)stack.peek();
        System.out.println("peek:"+val);
        iteratorThroughRandomAccess(stack) ;

        // 通过Iterator去遍历Stack
        iteratorThroughIterator(stack) ;
    }

    /**
     * 通过快速访问遍历Stack
     */
    public static void iteratorThroughRandomAccess(List list) {
        String val = null;
        for (int i=0; i<list.size(); i++) {
            val = (String)list.get(i);
            System.out.print(val+" ");
        }
        System.out.println();
    }

    /**
     * 通过迭代器遍历Stack
     */
    public static void iteratorThroughIterator(List list) {

        String val = null;
        for(Iterator iter = list.iterator(); iter.hasNext(); ) {
            val = (String)iter.next();
            System.out.print(val+" ");
        }
        System.out.println();
    }

}

 

执行结果:

1 2 3 4 5 

the postion of 2 is:4

1 2 3 4 

peek:4

1 2 3 4 

1 2 3 4 

  • 大小: 40.7 KB
  • 大小: 18 KB
分享到:
评论

相关推荐

    java-sizeof-0.0.4:一个查看java对象占用内存大小

    在Java中,内存主要分为堆内存(Heap)和栈内存(Stack)。对象通常存储在堆内存中,而基本类型的变量和方法的局部变量存储在栈内存中。堆内存的大小可动态扩展,而栈内存的大小在编译时就已经确定。了解对象占用的...

    android ndk-stack使用说明。

    尤其是对于C/C++代码的调试,由于涉及到本地代码与Java层之间的交互,使得调试过程变得更为复杂。为了解决这一难题,`ndk-stack`工具应运而生。通过本文档,我们将详细介绍如何使用`ndk-stack`工具来进行调试,帮助...

    opc-ua-stack.jar包

    OPC UA java开发使用的jar包,最新代码编译的jar包版本1.4.0,欢迎下载使用。

    java-stack-trace

    java-stack-trace java-stack-trace是一个用于调试的java instrument,指定方法前缀,它能在指定前缀的方法被调用时打印当前堆栈。 由于asm的限制,仅支持jdk1.8及以上 编译 mvn package 用法 在java命令后添加-java...

    JAVA-OPTS参数设置.docx

    7. -Xss:每个线程的 Stack 大小,建议设置为 128k。 8. -verbose:gc:实时垃圾收集信息。 9. -Xloggc:gc.log:指定垃圾收集日志文件。 10. -XX:+UseParNewGC:缩短 minor 收集的时间。 11. -XX:+...

    Selenium-Java-3.141.59 安装包

    遇到问题时,你可以轻松地在社区论坛或Stack Overflow上寻求帮助。 压缩包中的"下载地址,最新版可以访问这个.txt"文件提供了一个链接,方便你获取Selenium的最新版本。随着Selenium的持续发展,保持更新是必要的,...

    java-Press-out-the-stack-.zip_out

    在Java中,我们可以使用`java.util.Stack`类来实现压栈操作。初始化一个空栈,然后遍历查询结果集,每次遇到一个新节点,将其转换为自关联的对象(如`MenuNode`),并压入栈中。如果当前节点有父节点,我们将栈顶...

    java-leetcode题解之155-Min-Stack

    java入门 java_leetcode题解之155_Min_Stack

    Webstack-Guns-1.0.jar

    本项目这是一个纯静态的网址导航网站,项目基于bootstrap前端框架开发,基于Java开发的后台系统 框架:Guns Springboot

    Kosta-java-full-stack-02-15-2-30

    【标题】"Kosta-java-full-stack-02-15-2-30" 暗示这是一个关于Java全栈开发的学习资源,可能是某个课程或教程的一部分,日期可能表示发布或更新的时间,即2月15日的第2到第30个小时。这可能是一个连续的系列,涵盖...

    Kosta-java-full-stack-02-15

    【标题】"Kosta-java-full-stack-02-15" 暗示这是一个关于Java全栈开发的课程或教程,可能由一位名叫Kosta的专家或教育者提供。这个系列可能涵盖了从基础到进阶的Java编程,以及如何构建完整的Web应用程序。"02-15...

    mysql-connector-java-5.1.6

    13. **社区支持**: 作为开源项目,MySQL Connector/J有活跃的社区提供支持,用户可以在MySQL官方论坛、Stack Overflow等平台寻求帮助或分享经验。 总结来说,MySQL Connector/J 5.1.6是Java开发者不可或缺的工具,...

    彩信封装包-java-mms-jMmsLib

    the java mms library implements the multimedia messaging service stack necessary for communicating with an MMSC (via the jWap stack) and implements the client transactions necessary for transmitting ...

    一个简单的JAVA-JAIN-SIP客户端,可以连接SIP服务端发起呼叫

    2. **SipStack**: 表示SIP堆栈,负责处理SIP消息的发送、接收和路由。 3. **SipProvider**: 这个组件负责与SIP服务器进行通信,发送和接收SIP请求和响应。 4. **SipURI**: 用于表示SIP URI,这是SIP地址的一种形式...

    java-leetcode题解之Maximum Frequency Stack.java

    java java_leetcode题解之Maximum Frequency Stack.java

    java-leetcode题解之Implement Stack using Queues.java

    java java_leetcode题解之Implement Stack using Queues.java

    java-leetcode题解之Implement Stack Using Array.java

    java java_leetcode题解之Implement Stack Using Array.java

    java-springboot-demomicrometer_java_springboot_micrometer_

    SpringBoot 提供了开箱即用的便捷性,而 Micrometer 则是 Spring 生态系统中的一个度量收集框架,支持多种监控系统如 Prometheus、Graphite 和 ELK Stack。 首先,`java-springboot-demomicrometer` 项目是一个简单...

    java-leetcode面试题解Stack之第71题简化路径-题解.zip

    标题中的“java-leetcode面试题解Stack之第71题简化路径-题解.zip”指出这是一个关于Java编程语言,LeetCode在线编程平台上的面试题目,具体是第71题,涉及的数据结构是栈(Stack),内容是解答如何简化路径的问题。...

    java-leetcode面试题解Stack之第42题接雨水-题解.zip

    在Java中,可以使用`java.util.Stack`类来实现这个算法。 通过解这道题,开发者可以增强对Stack数据结构的应用,提高解决实际问题的能力。同时,这也是一道常出现在求职面试中的题目,熟练掌握此题解法有助于在面试...

Global site tag (gtag.js) - Google Analytics