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
相关推荐
在IT行业中,数据库操作是应用程序的核心部分,而Hibernate作为一款流行的Java对象关系映射(ORM)框架,极大地简化了数据库的交互。今天我们将探讨的是Hibernate的二级缓存,特别是`list`和`iterate`方法的区别,这...
`struts`是一个著名的Java Web开发框架,它提供了一套基于MVC(Model-View-Controller)设计模式的标签库,使得开发者可以更方便地构建动态网页应用。在`struts`的标签库中,`logic:iterate`是一个非常重要的标签,...
jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑
在Java编程中,Map是一种非常重要的数据结构,它存储键值对,允许通过键来高效地查找对应的值。本文将详细讲解如何在Java中遍历Map,包括不同类型的Map迭代方式,以及涉及到的相关知识点。 首先,Java中的Map接口...
### logic:iterate 标签详解 #### 一、概述 `logic:iterate` 是 Struts 标签库中的一个重要组成部分,主要用于在 JSP 页面中循环遍历集合对象(如 List、Array 或 Map 等)。它能够有效地帮助开发者在前端展示动态...
logic:iterate 产生问题的图
Struts-Logic Iterate标签是Apache Struts框架中的一个重要组件,用于在JSP页面中迭代集合对象,如数组、列表或Map。这个标签提供了一种简洁的方式来遍历数据,并且可以与Struts的其他标签(如`bean:write`)配合...
1. Map里存放的是bean时 <br><logic:iterate id="destMap" name="srcMap"> <br> <bean:define id="bean" name="destMap" property="value" /> <br> <bean:write name="bean" property="name" /> <br>...
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 ...
在Java Web开发中,iBatis(现在称为MyBatis)是一个流行的持久层框架,它提供了灵活的SQL映射机制,使得数据库操作更加便捷。在iBatis中,`<iterate>`标签是一个非常实用的功能,它允许我们处理集合数据,如数组、...
Struts Logic标签Struts Logic标签Struts Logic标签Struts Logic标签Struts Logic标签
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赋值给逻辑迭代器 在Web开发中,经常需要从前端向后端发起请求并获取数据。Dynamic Web Remoting(DWR)是一种简化Ajax开发的技术,它使得JavaScript可以像调用本地...
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是一个优秀的持久层框架,它允许将SQL语句直接嵌入到Java代码中,简化了数据库操作。而`<iterate>`标签是iBATIS提供的一个便利的循环结构,用于处理数组、集合或Map等数据结构,方便地生成动态SQL。 在描述中...
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 ...
在Java 8中,Stream API引入了一种新的处理数据的方式,它允许我们以声明性风格对集合、数组等数据源进行高效的操作。Stream是数据渠道,它可以用来处理一系列元素,如从集合或数组中生成的元素序列。Stream操作通常...
for (XdmItem item : result.iterate()) { System.out.println(item.getStringValue()); } ``` 这就是Java中使用XQuery的基本流程。不过,实际项目中,你可能还需要考虑错误处理、优化查询性能、处理大型XML文件...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...