- 浏览: 822417 次
- 性别:
- 来自: 株洲->深圳
文章分类
- 全部博客 (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 3278HessianProxy cannot connect t ... -
位运算、异或的实际应用
2013-12-24 15:53 10878一. 位操作基础,用 ... -
了解LinkedList原理
2013-12-25 14:38 11651.LinkedList介绍 线性链表集合,循环链表ht ... -
了解ArrayList原理
2013-12-18 10:45 11141.ArrayList 介绍 有序集合,按顺序存储元素 ... -
java Cookie的有效期
2013-12-03 19:55 6020Cookie的有效期 Cookie的maxAge决定着Co ... -
10 道 Java 泛型面试题
2013-10-20 19:07 1799关于泛型的面试题在 Java面试中变得越来越常见,因为 Ja ... -
tomcat 访问记录日志
2013-05-17 01:43 1724Tomcat7.0.xx访问请求记录是默认打开的 ... -
支付宝RSA 公私钥 程序生成,openssl rsa 密钥程序生成,想要多少有多少
2013-05-01 00:21 30521.先配置好openssl 环境变量 保证cmd 输 ... -
MD2withRSA is disabled
2013-04-25 14:44 1757请求https报以一错误: javax.net.ssl.S ... -
狗日的支付宝
2013-04-24 23:26 14709用openssl 生成的密钥老是报以下错误: ja ... -
quartz 启动时会自动启动检测是否有可用的新版本
2013-04-24 20:06 1844日志提示: [org.quartz.utils.Updat ... -
Data truncation: Incorrect datetime value: '' for column 'createTime' at row
2013-03-22 17:11 21995mysql SQL Error: 0, SQLState: ... -
session失效通过头信息判断跳转
2013-03-13 18:06 1673/** * 拦截用户是否登录跳转到登录页 * 页面请 ... -
jsonlib转换树型数据没其它框架好
2013-01-26 14:39 1442jsonlib的性能请看这篇文章:http://wangym ... -
[ava.net.SocketException四大异常解决方案
2012-12-05 12:31 5298java.net.SocketException如何才能 ... -
SSM1.0中UpdateSingleCache 参数keyIndex,dataIndex解释
2012-08-31 00:21 1437simple-spring-memcached 简称:ssm ... -
simple-spring-memcached-3.0.x 注解详解
2012-08-10 18:37 4630@CacheName: 指定缓存实例注解 @Cach ... -
simple-spring-memcached-3.0.x 用了lombok类库记录一下
2012-08-08 12:20 1501消除冗长的 Java 代码 Lombok Lombok ... -
Ehcache集群使用
2012-07-21 15:48 4795集群的事例是由别人提供(附件也提供下载,我将相关包已导入),我 ...
相关推荐
Java集合主要包括两大接口:`Collection` 和 `Map`。 #### Collection接口: - **特点**:它代表一个元素列表,可以包含重复的元素,并且没有固定的顺序。 - **主要实现类**: - **List**:有序集合,允许重复元素...
Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`Deque`、`Map`等接口和它们的具体实现类如`ArrayList`、`LinkedList`、`Vector`、`Stack`、`HashSet`、`HashMap`等。下面将对这些核心概念和类进行深入...
在Java编程语言中,集合框架是处理对象组的重要工具,它提供了一种高效...总的来说,Java集合框架提供了丰富的选择,满足了各种数据存储和操作的需求。通过深入理解和熟练应用,开发者可以写出更加高效、可维护的代码。
Java集合框架的基础接口有Collection、Set、List、Map、Queue、Dequeue、SortedSet、SortedMap和ListIterator等。 5. 为何Collection不从Cloneable和Serializable接口继承? Collection接口指定一组对象,对象即为...
Java集合框架主要包括两大接口:Collection和Map。Collection接口是所有单值容器的超接口,它的子接口有List(有序、可重复元素,如ArrayList和LinkedList)和Set(无序、不可重复元素,如HashSet和TreeSet)。List...
Java集合框架主要包括两种类型的容器:集合(Collection)和映射(Map)。其中集合用于存储一组不重复的对象,而映射则用于存储键值对。 #### 二、集合(Collection) Java中的集合框架主要包括以下几种类型的集合...
Java集合框架是Java编程语言中的一个核心特性,它为存储、管理和操作对象提供了一套统一的接口和实现。这个框架包括各种接口、类和算法,使得开发者能够更加高效地处理对象集合,而无需关注底层数据结构的实现细节。...
为了方便遍历集合中的元素,Java集合框架提供了迭代器接口`Iterator`,它定义了遍历集合的基本方法:`hasNext()`判断是否还有下一个元素;`next()`返回集合中的下一个元素;`remove()`移除当前的元素。此外,对于`...
集合框架提供了多种集合类,例如 ArrayList、LinkedList、Stack、Queue、PriorityQueue、Set、TreeSet、HashSet 等。每个集合类都提供了特定的实现方式和优化算法,以满足不同的应用场景。 Map 接口 Map 是一种...
7. **集合**:Java集合框架是处理对象组的工具,包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList等)。集合框架允许我们高效地存储、检索和操作对象,是Java编程中的核心部分...
Java集合框架是Java编程语言中一个非常重要的组成部分,它为数据存储、管理和操作提供了丰富的类库。本章将深入探讨Java集合框架的核心概念、接口和类,以及它们在实际编程中的应用。 首先,集合框架的基础是接口,...
4. **Iterator和Enumeration**:`Iterator`是Java集合框架中用于遍历Collection的主要接口,而`Enumeration`是旧的迭代方式,主要用于`Hashtable`、`Vector`和`Stack`。`ListIterator`是专为List设计的迭代器,支持...
Java集合框架还包含了Queue(队列)、Deque(双端队列)、Stack(栈)等接口和实现,例如LinkedList可以作为双端队列使用,ArrayDeque作为高效栈和队列,PriorityQueue实现了优先队列,能根据元素的优先级进行出队。...
### 超全Java集合框架讲解 #### 集合框架总览 Java集合框架是Java编程语言中处理数据结构的基础。它为开发者提供了一系列高度优化的数据存储与操作方法,使得开发者可以更加专注于业务逻辑而无需担心底层实现细节...
本文将深入探讨图的邻接表存储方式以及如何用Java进行遍历。 一、邻接表的概念 邻接表是图的一种常见存储方式,它为每个顶点维护一个列表,列表中包含了与该顶点相连的所有边。相比于邻接矩阵,邻接表在处理稀疏图...
### Java集合类详解 #### 一、集合框架概述 Java集合框架是Java平台的一个核心特性,为开发人员提供了丰富的数据结构实现。集合框架主要包括两大接口:`Collection` 和 `Map`。`Collection` 用于存储单个对象的...