`
DavyJones2010
  • 浏览: 154142 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java SE: How to iterate Stack

阅读更多

How to iterate a stack in Java?

    1> Pitfall: Using iterator to iterate Stack

@Test
public void iterateTest() {
    Stack<String> stack = new Stack<String>();
    stack.push("I");
    stack.push("Love");
    stack.push("You");
    for (String str : stack) {
        System.out.println(str);
    }
}
// Output:
I
Love
You

    Contrary to our expectation, It is iterated like a Queue instead of a Stack. 

    It's a bug listed in BugList matained by Oracle and won't be fixed because of capatibility.

    2> The correct way to iterate stack is:

@Test
public void iterateTest2() {
  Stack<String> stack = new Stack<String>();
  stack.push("I");
  stack.push("Love");
  stack.push("You");
  while (!stack.isEmpty()) {
      System.out.println(stack.pop());
  }
}
//Output:
You
Love
I

 

 

Reference Links:

1) http://www.tigraine.at/2010/05/12/never-assume-stack-iterators-in-java

2) http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4475301

分享到:
评论

相关推荐

    day37 04-Hibernate二级缓存:list和iterate方法比较

    在IT行业中,数据库操作是应用程序的核心部分,而Hibernate作为一款流行的Java对象关系映射(ORM)框架,极大地简化了数据库的交互。今天我们将探讨的是Hibernate的二级缓存,特别是`list`和`iterate`方法的区别,这...

    struts 标签 logic:iterate使用 logic:iterate

    `struts`是一个著名的Java Web开发框架,它提供了一套基于MVC(Model-View-Controller)设计模式的标签库,使得开发者可以更方便地构建动态网页应用。在`struts`的标签库中,`logic:iterate`是一个非常重要的标签,...

    jsp脚本和标签:实现循环和分支逻辑

    jsp脚本和&lt;logic:iterate&gt;标签:实现循环和分支逻辑 jsp脚本和&lt;logic:iterate&gt;标签:实现循环和分支逻辑 jsp脚本和&lt;logic:iterate&gt;标签:实现循环和分支逻辑

    How to Iterate Over a Map in Java

    在Java编程中,Map是一种非常重要的数据结构,它存储键值对,允许通过键来高效地查找对应的值。本文将详细讲解如何在Java中遍历Map,包括不同类型的Map迭代方式,以及涉及到的相关知识点。 首先,Java中的Map接口...

    logic:iterate 是什么,怎么用

    ### logic:iterate 标签详解 #### 一、概述 `logic:iterate` 是 Struts 标签库中的一个重要组成部分,主要用于在 JSP 页面中循环遍历集合对象(如 List、Array 或 Map 等)。它能够有效地帮助开发者在前端展示动态...

    logic:iterate产生问题的图

    logic:iterate 产生问题的图

    struts-logic iterate标签学习指南

    Struts-Logic Iterate标签是Apache Struts框架中的一个重要组件,用于在JSP页面中迭代集合对象,如数组、列表或Map。这个标签提供了一种简洁的方式来遍历数据,并且可以与Struts的其他标签(如`bean:write`)配合...

    logic:iterate标签当遍历的collection为Map时的使用

    1. Map里存放的是bean时 &lt;br&gt;&lt;logic:iterate id="destMap" name="srcMap"&gt; &lt;br&gt; &lt;bean:define id="bean" name="destMap" property="value" /&gt; &lt;br&gt; &lt;bean:write name="bean" property="name" /&gt; &lt;br&gt;...

    Mastering Linux Shell Scripting 2nd Edition

    see how to write for loops, how to iterate over simple values, and how to iterate over directory content. Also, you will learn how to write nested loops. Along with this, you will write while and ...

    ibatis中iterate的例子

    在Java Web开发中,iBatis(现在称为MyBatis)是一个流行的持久层框架,它提供了灵活的SQL映射机制,使得数据库操作更加便捷。在iBatis中,`&lt;iterate&gt;`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、...

    Struts Logic标签

    Struts Logic标签Struts Logic标签Struts Logic标签Struts Logic标签Struts Logic标签

    Running Lean: Iterate from Plan A to a Plan That Works

    We're building more products than ever before, but most of them fail--not because we can't complete what we set out to build, but because we waste time, money, and effort building the wrong product. ...

    怎么将利用DWR调用JAVA类方法所返回的ArrayList数组   赋值给   logiciterate 迭代器

    ### 如何将通过DWR调用Java类方法返回的ArrayList赋值给逻辑迭代器 在Web开发中,经常需要从前端向后端发起请求并获取数据。Dynamic Web Remoting(DWR)是一种简化Ajax开发的技术,它使得JavaScript可以像调用本地...

    FlowCanvas Visual Scripting v1.3.2

    Designers: Prototype, iterate and realize complete gameplay mechanics without coding, while learning how code works the easy way. If you are familiar with Unreal Blueprints, you will feel right at ...

    ibatis标签

    iBATIS是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`&lt;iterate&gt;`标签是iBATIS提供的一个便利的循环结构,用于处理数组、集合或Map等数据结构,方便地生成动态SQL。 在描述中...

    unity FlowCanvas 2.9.0.zip

    Designers: Prototype, iterate and realize complete gameplay mechanics without coding, while learning how code works the easy way. If you are familiar with Unreal Blueprints, you will feel right at ...

    Java8 Stream流的三个步骤操作.docx

    在Java 8中,Stream API引入了一种新的处理数据的方式,它允许我们以声明性风格对集合、数组等数据源进行高效的操作。Stream是数据渠道,它可以用来处理一系列元素,如从集合或数组中生成的元素序列。Stream操作通常...

    XQuery For Java 例子

    for (XdmItem item : result.iterate()) { System.out.println(item.getStringValue()); } ``` 这就是Java中使用XQuery的基本流程。不过,实际项目中,你可能还需要考虑错误处理、优化查询性能、处理大型XML文件...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

Global site tag (gtag.js) - Google Analytics