- 浏览: 806036 次
- 性别:
- 来自: 株洲->深圳
文章分类
- 全部博客 (283)
- JAVA (54)
- 数据库 (25)
- Linux (22)
- Spring (9)
- Hibernate (7)
- mybatis (1)
- struts (10)
- javascript (22)
- Web (11)
- 异常 (30)
- 工具 (21)
- pay (9)
- 软件相关 (7)
- 其它 (28)
- python (1)
- 缓存 (9)
- 面试题 (2)
- 代码规范 (14)
- 网络编程 (1)
- 架构设计 (1)
- 程序测试 (3)
- 移动 (1)
- 安全 (2)
- 服务器 (4)
- 程序员 (1)
- php (4)
- 非技术 (7)
- web容器 (3)
- 竞彩篮球 (1)
- nginx (5)
- 加密 (2)
- jquery (2)
- 原理 (2)
- 项目管理 (1)
- www..betradar.com (0)
- www.betradar.com (1)
- 爬虫 (1)
最新评论
-
July01:
有一款web 打印控件StratoIO,浏览器和系统的兼容性都 ...
WEB免费打印控件推荐(4款) -
lihaimian:
你好,有个问题咨询一个,为何我在java中,无法使用与运算符, ...
位运算、异或的实际应用 -
小黄牛:
很好谢谢分享!推荐几篇spring boot基础入门文章:ht ...
Spring Boot 快速入门 (官方quick start) -
littlesheep:
我按照你的方法从新生成了密钥可是还是报者个错误...
狗日的支付宝 -
di1984HIT:
学习了~~~
javassist:增强型的java反射工具,获取方法参数名
Java集合的Stack、Queue、Map的遍历
在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack、Queue、Map类型的遍历,还是有一些讲究的。
下面是常用的写法:
一、Map的遍历
import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * Map的遍历,这个遍历比较特殊,有技巧 * * @author leizhimin 2009-7-22 15:15:34 */ public class TestMap { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "a"); map.put("2", "b"); map.put("3", "c"); //最简洁、最通用的遍历方式 for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println(entry.getKey() + " = " + entry.getValue()); } //Java5之前的比较简洁的便利方式1 System.out.println("----1----"); for (Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();) { Map.Entry<String, String> entry = it.next(); System.out.println(entry.getKey() + " = " + entry.getValue()); } //Java5之前的比较简洁的便利方式2 System.out.println("----2----"); for (Iterator<String> it = map.keySet().iterator(); it.hasNext();) { String key = it.next(); System.out.println(key + " = " + map.get(key)); } } }
3 = c
2 = b
1 = a
----1----
3 = c
2 = b
1 = a
----2----
3 = c
2 = b
1 = a
Process finished with exit code 0
2 = b
1 = a
----1----
3 = c
2 = b
1 = a
----2----
3 = c
2 = b
1 = a
Process finished with exit code 0
二、Queue的遍历
import java.util.Queue; import java.util.concurrent.LinkedBlockingQueue; /** * 队列的遍历 * * @author leizhimin 2009-7-22 15:05:14 */ public class TestQueue { public static void main(String[] args) { Queue<Integer> q = new LinkedBlockingQueue<Integer>(); //初始化队列 for (int i = 0; i < 5; i++) { q.offer(i); } System.out.println("-------1-----"); //集合方式遍历,元素不会被移除 for (Integer x : q) { System.out.println(x); } System.out.println("-------2-----"); //队列方式遍历,元素逐个被移除 while (q.peek() != null) { System.out.println(q.poll()); } } }
三、Stack的遍历
import java.util.Stack; /** * 栈的遍历 * * @author leizhimin 2009-7-22 14:55:20 */ public class TestStack { public static void main(String[] args) { Stack<Integer> s = new Stack<Integer>(); for (int i = 0; i < 10; i++) { s.push(i); } //集合遍历方式 for (Integer x : s) { System.out.println(x); } System.out.println("------1-----"); //栈弹出遍历方式 // while (s.peek()!=null) { //不健壮的判断方式,容易抛异常,正确写法是下面的 while (!s.empty()) { System.out.println(s.pop()); } System.out.println("------2-----"); //错误的遍历方式 // for (Integer x : s) { // System.out.println(s.pop()); // } } }在遍历集合时候,优先考虑使用foreach语句来做,这样代码更简洁些。
并且推荐使用foreach
发表评论
-
linux 服务器挂载出问题,导致写文件失败,程序超时
2014-07-11 11:07 0linux 服务器挂载出问题,导致写文件失败,程序超时 -
HessianProxy cannot connect to 'http://localhost
2014-04-12 10:57 3227HessianProxy cannot connect t ... -
位运算、异或的实际应用
2013-12-24 15:53 10762一. 位操作基础,用 ... -
了解LinkedList原理
2013-12-25 14:38 11171.LinkedList介绍 线性链表集合,循环链表ht ... -
了解ArrayList原理
2013-12-18 10:45 10621.ArrayList 介绍 有序集合,按顺序存储元素 ... -
java Cookie的有效期
2013-12-03 19:55 5960Cookie的有效期 Cookie的maxAge决定着Co ... -
10 道 Java 泛型面试题
2013-10-20 19:07 1751关于泛型的面试题在 Java面试中变得越来越常见,因为 Ja ... -
tomcat 访问记录日志
2013-05-17 01:43 1668Tomcat7.0.xx访问请求记录是默认打开的 ... -
支付宝RSA 公私钥 程序生成,openssl rsa 密钥程序生成,想要多少有多少
2013-05-01 00:21 30031.先配置好openssl 环境变量 保证cmd 输 ... -
MD2withRSA is disabled
2013-04-25 14:44 1705请求https报以一错误: javax.net.ssl.S ... -
狗日的支付宝
2013-04-24 23:26 14633用openssl 生成的密钥老是报以下错误: ja ... -
quartz 启动时会自动启动检测是否有可用的新版本
2013-04-24 20:06 1796日志提示: [org.quartz.utils.Updat ... -
Data truncation: Incorrect datetime value: '' for column 'createTime' at row
2013-03-22 17:11 21861mysql SQL Error: 0, SQLState: ... -
session失效通过头信息判断跳转
2013-03-13 18:06 1625/** * 拦截用户是否登录跳转到登录页 * 页面请 ... -
jsonlib转换树型数据没其它框架好
2013-01-26 14:39 1402jsonlib的性能请看这篇文章:http://wangym ... -
[ava.net.SocketException四大异常解决方案
2012-12-05 12:31 5229java.net.SocketException如何才能 ... -
SSM1.0中UpdateSingleCache 参数keyIndex,dataIndex解释
2012-08-31 00:21 1389simple-spring-memcached 简称:ssm ... -
simple-spring-memcached-3.0.x 注解详解
2012-08-10 18:37 4570@CacheName: 指定缓存实例注解 @Cach ... -
simple-spring-memcached-3.0.x 用了lombok类库记录一下
2012-08-08 12:20 1465消除冗长的 Java 代码 Lombok Lombok ... -
Ehcache集群使用
2012-07-21 15:48 4722集群的事例是由别人提供(附件也提供下载,我将相关包已导入),我 ...
相关推荐
void dfs(linkmap *maps,int i)//i用来指定深度优先遍历的起始值 { edgenode *pp; printf("%c",maps->maplist[i].element); v[i]=1; pp=maps->maplist[i].firstedge; while(pp) { if(!v[pp->adress]) ...
BinaryTree遍历(用map实作) BST(实作insert, predecessor, successor) Augmented_BST(扩充的BST,实作exists(判断key是否存在), insert, predecessor, successor, rank(给key求排名), select(给排名求key)) AVL tree...
Stack LinkedList Queue/PriorityQueue(heap) Set/Disjoint Set Map/HashTable Tree/Binary Search Tree/Spanning tree Trie 字母树 BloomFilter LRU Cache 算法 Sorting 排序算法 Graph 图 Hashing 哈希 Greedy ...
10.2.9Map和multimap容器 118 10.2.10容器共性机制研究 123 10.2.11其他 124 10.3算法 125 10.3.1算法基础 125 10.3.2STL算法中函数对象和谓词 138 10.3.3常用的遍历算法 148 10.3.4常用的查找算法 152 10.3.5常用的...
stack & queue 栈、队列 知识点 栈 队列 双端队列 优先队列:堆结构的实现 经典题 括号匹配 表达式求值(中缀表达式转后缀表达式) 队列-层次遍历 栈实现队列、队列实现栈 双端队列-返回滑动窗口的最大值 小顶堆-返回...
03_python实现ADT Stack 04_栈的应用1括号匹配 05_栈的应用2十进制转二进制 06_栈的应用3中缀转后缀表达式 07_栈的应用4后缀表达式求值 08_python实现ADT Queue 09_队列的应用1约瑟夫问题 10_队列的应用2打印任务 11...
STL容器部分主要由头文件、、、、< map>、<stack>和<queue>组成。 (2)算法(Algorithms)。包括各种基本算法,如比较、交换、查找、排序、遍历操作、复制、修改、移除、反转、合并等等。 STL算法部分主要由...
Stack, Queue, 或者返回值特别复杂, 或者需要大量拼接字符串时, 使用 C++。 这份文档的目的是复习用的,并不是教如何解题的,因此只有简略介绍,适合面试前查漏补缺复习。 Let the hack begin! 从数组中找出两个数字...
14.6.9 使用for-each循环遍历集合 300 14.7 映射集 301 14.7.1 Map接口及含义 301 14.7.2 HashMap类的使用 302 14.7.3 Hashtable类的使用 303 14.7.4 LinkedHashMap类的使用 304 14.7.5 SortedMap接口...
本教程共分为5个部分,第一部分是C语言提高部分,第二部分为C++基础部分,第三部分为C++进阶部分,第四部分为C、C++及数据结构基础部分,第五部分为C_C++与设计模式基础,内容非常详细. 第一部分 C语言提高部分目录...
本版本与网上其他资源不同之处在于,此版本可进行编辑,搜索,已进行内容识别扫描。可全选,可编辑,可剪切文字。 部分目录如下: 目录 第一篇预备知识 第1 章C++ 编程技术.........................................