文档章节

怎样遍历Collection中的集合如Set

独鸣在彼岸
 独鸣在彼岸
发布于 2013/12/30 18:05
字数 185
阅读 45
收藏 0
点赞 0
评论 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
博文 188
码字总数 35784
作品 0
广州
Java 集合系列02之 Collection架构

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

东方神剑 ⋅ 2015/12/16 ⋅ 1

集合(四)Map

Collection集合和Map集合的区别: a: Map集合属于双列集合 , Collection属于单列集合 b: Map集合键是唯一性的, 而Collection集合中的Set集合可以保证元素的唯一性 c: Map集合的数据结构只和键...

centrald ⋅ 2016/01/29 ⋅ 0

Java 集合系列02之 Collection架构

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

无信不立 ⋅ 2014/07/15 ⋅ 0

java面试热点:集合框架(一)

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

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

Java中Collection和Iterator接口

1.Collection接口是List、Set和Queue接口的父接口,该接口里面定义方法即可用与操作Set集合,也用于操作List和Queue集合。Collection接口里面定义一些操作集合元素的方法。boolean add(Obj...

西红柿的眼泪 ⋅ 2016/07/13 ⋅ 0

Java 集合系列01之 总体框架

Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.* Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、...

东方神剑 ⋅ 2015/12/16 ⋅ 0

Map、Set、List集合差别及联系详解

         一、集合   集合类存放于java.util包中。   集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。  ...

Romane ⋅ 06/05 ⋅ 0

Java集合系列之Connection与Map接口宏观把控

Java集合系列之Connection与Map接口宏观把控 Hello,大家好,元旦快到了,这里提前祝大家元旦快乐,出行注意安全,回家的小伙伴能早日和家人见面,开开心心过元旦。Ok,切入主题,这篇文章,我...

⋅ 2017/12/29 ⋅ 0

Java 集合框架_List

Java 集合框架系列 Java 集合框架开篇 Java 集合框架List Java 集合框架ArrayList Java 集合框架LinkedList 上一章讲述了顶层接口Collection以及抽样类AbstractCollection。但是Collection接...

wo883721 ⋅ 2017/12/20 ⋅ 0

JAVA---集合部分(1)

集合和数组的区别 1)长度的区别: 数组:长度是固定的 集合:长度是可变的 2)存储数据类型的区别: 数组:可以存储基本数据类型,还能存储引用数据类型 集合:只能存储引用类型 3)存储类型的元素的区...

浅0梦0 ⋅ 2017/08/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 20分钟前 ⋅ 0

数据仓库技术概述(一看就是架构师写的,对我极其有用)

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于...

gulf ⋅ 22分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 23分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 27分钟前 ⋅ 0

vue获取input输入框的数据

用惯了jQuery,突然使用vue感觉很不习惯,有很多不同的地方,感觉是两个不同的思想来写前端的代码。jQuery是使用选择器($)选取DOM对象,对其进行赋值、取值、事件绑定等操作。而Vue则是通过...

王子城 ⋅ 29分钟前 ⋅ 0

竟然这就是面向对象的游戏设计?!

从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句。在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计。本文将概述原型继承和使用 JavaSc...

柳猫 ⋅ 34分钟前 ⋅ 2

git cmd git bash

刚用到了Git,看到windows环境下有两个命令输入窗口 第一个是可视化图形界面,第二个是CMD,第三个是Bash。 Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。所以建议在使用的...

东东笔记 ⋅ 36分钟前 ⋅ 0

分布式系统CAP和Base

1、分布式系统 1.1 简介 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的...

xixingzhe ⋅ 47分钟前 ⋅ 0

查看磁盘占用情况

记一次jenkins构建失败的问题 Build step 'Send build artifacts over SSH' changed build result to UNSTABLE 网上查资料都没明确表明是什么错,回忆之前处理这样的问题。第一时间想到的是不...

ManderSF ⋅ 49分钟前 ⋅ 0

数据库管理提速:SQL解析的探索与应用

前言: SQL解析是一项复杂的技术,一般都是由数据库厂商来掌握,当然也有公司专门提供SQL解析的API。SQL解析与优化是属于编译器范畴,和C语言等其他语言的解析没有本质的区别。其中分为词法分...

java高级架构牛人 ⋅ 56分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部