java中的Iterator和Iterable 区别

原文:http://perfy315.iteye.com/blog/1459201

----------------------------------------------------------

java.lang.Iterable 
java.util.Iterator 

来自百度知道: 
Iterator是迭代器类,而Iterable是接口。 
好多类都实现了Iterable接口,这样对象就可以调用iterator()方法。 
一般都是结合着用,比如 
HashMap类就实现了Iterable接口,而要访问或打印出Map中所有内容时,就可以这样: HashMap hashMap; 
Iterator iter = hashMap.iterator(); 
while(iter.hashNext()) { 
  String s = iter.next(); 


转至:http://liuyun025.iteye.com/blog/1321045 
为什么一定要实现Iterable接口,为什么不直接实现Iterator接口呢? 
      看一下JDK中的集合类,比如List一族或者Set一族,都是实现了Iterable接口,但并不直接实现Iterator接口。 
仔细想一下这么做是有道理的。 

      因为Iterator接口的核心方法next()或者hasNext() 是依赖于迭代器的当前迭代位置的。 
      如果Collection直接实现Iterator接口,势必导致集合对象中包含当前迭代位置的数据(指针)。 
      当集合在不同方法间被传递时,由于当前迭代位置不可预置,那么next()方法的结果会变成不可预知。 
      除非再为Iterator接口添加一个reset()方法,用来重置当前迭代位置。 
      但即时这样,Collection也只能同时存在一个当前迭代位置。 
      而Iterable则不然,每次调用都会返回一个从头开始计数的迭代器。 
      多个迭代器是互不干扰的。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux版本fedora,技术|初级:如何更新 Fedora Linux 系统

本快速教程介绍了更新 Fedora Linux 安装的多种方法。安装 Fedora 之后,我做的第一件事就是尝试安装一些软件。我打开软件中心,发现该软件中心已“损坏”。 我无法从中安装任何应用程序。我不确定我的系统出了什么问题。在团队内部讨论时,Abh…

设计师学习HTML/CSS之路-11

不了解前端的UI不是好美工,以下是慕课网HTMLCSS基础教程学习笔记,不废话,Start! 第12章 CSS布局模型 11-1 元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元…

yum安装docker No package docker available

一开始以为是阿里的mirror没有这个包。后来才知道,是需要更新下epel第三方软件库 centos6.5运行命令yum install docker.io,发生错误 No package docker available yum没有找到docker包,更新epel第三方软件库,运行命令&#xff1a…

pytorch 对抗样本_【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现

本文分享一个“万物皆可盘”的NLP对抗训练实现,只需要四行代码即可调用。盘他。最近,微软的FreeLB-Roberta [1] 靠着对抗训练 (Adversarial Training)在GLUE榜上超越了Facebook原生的Roberta,追一科技也用到了这个方法仅凭单模型 [2] 就在CoQ…

linux 开源邮件 系统,4 个开源的命令行邮件客户端

无论你承认与否,email并没有消亡。对那些对命令行至死不渝的 Linux 高级用户而言,离开 shell 转而使用传统的桌面或网页版邮件客户端并不适应。归根结底,命令行最善于处理文件,特别是文本文件,能使效率倍增。幸运的是&…

kafka清理数据日志

背景问题: 使用kafka的路上踩过不少坑,其中一个就是在测试环境使用kafka一阵子以后,发现其日志目录变的很大,占了磁盘很大空间,定位到指定目录下发现其中一个系统自动创建的 topic,__consumer_offsets-45&a…

修改docker-仓库资源地址Error response from daemon: Get https://index.docker.io/v1/search

[rootzengmg /]# docker search centosError response from daemon: Get https://index.docker.io/v1/search?qcentos: read tcp 52.200.132.201:443: i/o timeout docker在中国已经有了仓库:https://www.docker-cn.com/registry-mirror 根据上面网站提供的修改方法…

oracle19c的版本号_Windows10安装Oracle19c数据库详细记录(图文详解)

1. 下载资源官网下载地址: 点此进入直接点击下载,会自动开始下载。2. 开始安装将下载的安装包解压到本地,右键-以管理员身份运行setup.exe,开始安装(一定要以管理员身份运行,不然后面会报错)。step1:选择创…

qt调用Linux脚本范例,QT下实现对Linux Shell调用的几种方法

使用QProcess QThread#include int main(){QProcess::execute("ls");return 0;}QProcess *poc new QProcess;poc-> start( "ping 222.207.53.1> hh ");打开hh文档 读取里面的内容给QTextEditQProcess *proc new QProcess;proc->addArgument(&qu…

Apache发布Groovy 2.5正式版及3.0预览版

Apache基金会最近发布了Groovy2.5,新功能包括:\\AST转换的改进\新的宏支持\其他杂项改进\运行Groovy 2.5至少需要JDK 7,在JDK 9上运行可以忽略良性警告。\\尽管最近人们把关注点转到了其他JVM语言上(如Kotlin)&#xf…

virtualbox 命令

原文链接:http://418684644-qq-com.iteye.com/blog/1451000 ----------------------------------------------------------------------------------------- 查看当前虚拟机 VBxoManage list vms 查看当前正在运行的虚拟机 VBoxManage list runningvms 启动虚拟机 …

js小学生图区_推荐12个最好的 JavaScript 图形绘制库

众多周知,图形和图表要比文本更具表现力和说服力。图表是数据图形化的表示,通过形象的图表来展示数据,比如条形图,折线图,饼图等等。可视化图表可以帮助开发者更容易理解复杂的数据,提高生产的效率和 Web 应…

linux 关闭登录权限,linux – /var/www/html的权限[已关闭]

我有一个虚拟CentOS服务器与GoDaddy,我无法设置/ var / www / html的权限。用户不能以root用户身份登录,甚至不能将自己添加到根组中,因此,我将自己写入的角落:>我使用以下命令更改了其所有者(我使用httpd.conf中的…

cifar10数据集测试有多少张图_pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)...

首先这是VGG的结构图,VGG11则是红色框里的结构,共分五个block,如红框中的VGG11第一个block就是一个conv3-64卷积层:一,写VGG代码时,首先定义一个 vgg_block(n,in,out)方法,用来构建VGG中每个blo…

npm ERR! Please try running this command again as root/Administrator.

win10操作系统下 webstrom的控制台使用 npm install angular-file-upload 安装组件,报错:npm ERR! Please try running this command again as root/Administrator. 解决方法: 开始按钮右键---- windows powershell(管理员&…

map flatmap mappartition flatMapToPair四种用法区别

原文链接:http://blog.csdn.net/u013086392/article/details/55666912 ----------------------------------------------------------------------------------- map: 我们可以看到数据的每一行在map之后产生了一个数组,那么rdd存储的是一个数组的集合…

eve可以在linux运行吗,ubuntu下为eve游戏搭载 wine环境

援引该地址的参考,本文仅做整理:http://bbs.eve-china.com/thread-626756-1-1.htmllinux的显卡是否驱动成功,依次键入如下命令察看:sudo apt-get install mesa-utils /*安装 mesa-utils 的指令*/glxinfo | grep r…

自动飞行控制系统_波音公司将重设计737MAX自动飞行控制系统!力求十月前复飞...

据西雅图时报8月1日报道,美国联邦航空管理局(FAA)在6月份对波音737 MAX飞行控制系统进行新的严格测试时,发现了一个潜在的缺陷,该缺陷促使波音公司对其基本的软件设计进行变革。波音公司如今正在改变737 MAX的自动飞行控制系统软件&#xff0…

每日一题——LeetCode141.环形链表

个人主页:白日依山璟 专栏:Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1:示例2:示例3:提示: 2. 思路3. 代码 1. 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某…

Android O 获取APK文件权限 Demo案例

1. 通过 aapt 工具查看 APK权限 C:\Users\zh>adb pull /system/priv-app/Settings . /system/priv-app/Settings/: 3 files pulled. 10.8 MB/s (48840608 bytes in 4.325s)C:\Users\zh>aapt d permissions C:\Users\zh\Settings\Settings.apk package: com.android.sett…