文档章节

怎样遍历Collection中的集合如Set

独鸣在彼岸
 独鸣在彼岸
发布于 2013/12/30 18:05
字数 185
阅读 47
收藏 0

当集合中还有集合时,应该怎样遍历呢?这个问题让我琢磨了一个下午,最后终于有了答案。

当我们使用如下的方法遍历集合时就会陷入到死循环中,一直打印下去,为什么呢?因为每执行完一次打印,重新执行while语句时又会创建新的iterator,所以这样的写法是错误的。


Collection<Set<String>> col = new ArrayList<HashSet<String>>;
while(col.iterator.next.iterator.hasNext()){
    System.out.println(col.iterator.next.iterator.next());
}

正确的遍历方法是先获取iterator的引用,然后通过这个引用进行遍历。

Iterator it = col.iterator();
while (it.hasNext()) {
   Set<String> set = (Set<String>) it.next();
   Iterator i = set.iterator();
   while (i.hasNext()) {
       System.out.println(i.next());
   }
}



这样才能够正确地打印。


© 著作权归作者所有

共有 人打赏支持
独鸣在彼岸
粉丝 4
博文 228
码字总数 35784
作品 0
广州
私信 提问
Java 集合系列02之 Collection架构

概要 首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set。 List和Set都是接口,它们继承于Collection。...

东方神剑
2015/12/16
118
1
java集合极速pk10网站开发系列02:Collection构架

首先,我们极速pk10网站开发haozbbs.com Q1446595067对Collection进行说明。下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set。 List和S...

oddad
07/16
0
0
Java 集合系列-第二篇-Collection架构

概要 首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图: Collection架构 概要首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图: Co...

简心
09/04
0
0
Java 集合系列02之 Collection架构

概要 首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set。 List和Set都是接口,它们继承于Collection。...

无信不立
2014/07/15
0
0
java面试热点:集合框架(一)

Java集合框架由Java类库的一系列接口、抽象类以及具体实现类组成。集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据。集合类型就是容纳这些对象的一个容器。根据集合中是否允...

神秘的寇先森
2017/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue-router的HTML5 History 模式设置

VUE是当下最火爆的前端框架之一,vue-router是vue项目中几乎都会用到的组件,然而体验一时爽,其实坑不少。本篇经验将详细介绍vue-router的两种mode效果和开发测试环境下的问题,并给出解决方...

peakedness丶
26分钟前
1
0
Dubbo 源码分析 - 服务引用

1. 简介 在上一篇文章中,我详细的分析了服务导出的原理。本篇文章我们趁热打铁,继续分析服务引用的原理。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直联的方式引用...

小刀爱编程
35分钟前
1
0
redis_集群原理

数据分布 数据分布理论 分布式系统数据分区规则:常见的有哈希分区和顺序分区两种。 哈希分区 常见的hash分区规则有:节点取余分区,一致性hash分区,虚拟槽分区. redis数据分区 redis集群功能...

grace_233
35分钟前
0
0
数据库(mysql)业务用户表批量造测试用户密码数据[方案]

博主这几天在配合公司测试做商城商品秒杀场景的压测,由于秒杀需要登录,所以需要为测试创建多个用户密码。此项任务可能在今后还会遇到,先做个笔录。同时,让小伙伴们需要的时候也可以有个参...

em_aaron
51分钟前
2
0
JDK_jvisualvm访问远程weblogic服务

1.首先需要在远程的weblogic的域下面,找到/bin/ setDomainEnv.sh ,需要在此文件下加入如下内容: -Dcom.sun.management.jmxremote.port=1090 ##端口号可以自己指定 -Dcom.sun.management.j...

四年级小学生
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部