-
【JAVA】增强for循环(foreach)或迭代器来遍历Stack的注意事项
自己在做leeCode 剑指offer09“用两个栈实现队列” 的时候,自己非要用增强for循环去遍历栈,然后就出问题了,发现输出和预期完全相反的结果,如下图
代码是这样写的:
然而leecode返回结果却是:
Stack的源码内部是通过数组实现的,
执行push() 时将元素追加到数组末尾,
执行peek() 时返回数组末尾元素(不删除该元素),
执行pop() 时取出数组末尾元素,并将该元素从数组中删除。
所以 用foreach或者迭代器访问的时候,是按照数组从索引0开始的方式遍历的!!
即:从栈底到栈顶;刚好和弹栈的方式相反!!!
所以,涉及元素出栈的时候,万万不可用foreach或迭代器
所以后来乖乖的用普通for循环去遍历:
然后就过了....
本文参考:https://blog.csdn.net/qq_43778308/article/details/108483525
__EOF__
本文作者: PocketHeart
l
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比