Iterable和Iterator的关系
Iterator和Iterable
学习任何类和文档最标准的解释当然还是从jdk API里面学习,因为这个是最准确不过的东西了。想看API文档
Iterable
java.lang包中 并且Collection继承了Iterable接口。
在Iterable中有三个方法
Iterator iterator;
该方法主要是返回T类型的元素上的一个迭代器
dafault void forEach(Consumer<? super T> action);
该方法是循环输出,对内部元素进行遍历,并对元素进行指定的操作
default Spliterator spliterator;
该方法提供了一个可以并行遍历元素的迭代器,以适应现在cpu多核时代并行遍历的需求。
Iterable
java.util包中
在Iterator中有四个方法
dafault void forEachRemaining(Consumer<? super E> action);
JDK 1.8后新增默认方法 使用Lambda表达式来遍历集合元素
boolean hasNext()
如果被迭代遍历的集合还没有被遍历完,返回True
Object next()
返回集合里面的下一个元素
remove()
删除集合里面上一次next()方法返回的元素。
文档咱们看完了。估计新手还是对这两个接口有所疑问。我简单的总结一下,也是个人理解。对于Iterable接口来说,是一个操作迭代器的接口。而对于Iterator接口来说,则是将集合转化为迭代器,用迭代器的方式来操作里面的数据元素。所以集合继承是的Iterable接口,实现集合变成迭代器。下面举一个
Iterable和Iterator的关系相关推荐
- Java中的Iterable与Iterator详解
在Java中,我们可以对List集合进行如下几种方式的遍历: List<Integer> list = new ArrayList<>(); list.add(5); list ...
- Python笔记-Collection中Iterable、Iterator和Generator的区别
Iterable Iterable是Python集合的一种,导入方式为from collections import Iterable.Iterable对象都具有__iter__()方法,可以被for ...
- Java中 Iterable 和 Iterator 的区别
1.Iterable接口 Iterable接口 (java.lang.Iterable) 是Java集合的顶级接口之一.我们首先看下这这个接口在JDK中的定义: package java.lang; ...
- 【Java 集合】ArrayList、LinkedList、Stack、Queue、Set、Map, 迭代器 Iterable、Iterator,Collections类
集合类型 数组的局限性 ArrayList(常用方法 + 基本使用) ArrayList - retainAll ArrayList - toArray ArrayList 的遍历(5种) Array ...
- Iterable和Iterator
Iterable和Iterator 文章目录 Iterable和Iterator 前言 分析源码 自定义迭代器示例 总结 前言 1.Iterable:是一个接口,仅有一个方法的声明,即 Iterato ...
- python中iterable_Python的Iterable和Iterator
Python部落组织翻译,禁止转载,欢迎转发 Iterable: 可迭代的 Iterator: 迭代器 Iterable 可迭代的就是逻辑上是"一排"的东西,比如列表.字典.元组 ...
- PYTHON 之 COROUTINE
参考资料 资料 https://blog.csdn.net/andybegin/article/details/77884645 http://python.jobbole.com/86481/ ht ...
- 【JDK源码】Iterator与Iterable的实现与区别
–本文前言– 在介绍Iterator与Iterable接口之前,需要了解Iterator与Iterable接口在Java类库家族谱中的地位.如下图0-1所示. [版权声明]归CSDN账 ...
- Java迭代器(转)(iterator详解以及和for循环的区别)
摘自http://septiny.com/java/2014/09/24/java-iterator-and-for.html 迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对 ...
最新文章
- java 反射 注解 运用_Java注解与反射的使用
- 交通部:将从五方面推进京津冀暨雄安新区交通建设
- 【Canal源码分析】TableMetaTSDB
- Arbitrage(判断正环 spfa写法)
- ios charts显示固定个数_上次挂在了百度iOS二面不服气, 三月之期已到,这次终于拿下offer!...
- Linux 2.6内核启动传递命令行的过程分析
- 第一天:搭建环境和初始化路由
- IDEA好看的主题安装
- Java对象的GC内存分配和回收策略
- 参加国际学术会议心得体会
- 2021年网络空间安全学院预推免面试经验总结
- Linux之用户和权限
- strncpy()函数详解
- java7java8 集合中对象的某一个字段分组
- 2021年全球指拨开关收入大约420.8百万美元,预计2028年达到519.8百万美元
- zabbix分布式监控被动模式代理
- linux基础培训ppt,Linux 基础培训.ppt
- 锐起游戏共享精灵XP(转)
- 安装gcc7.3.0
- 苹果电脑的CCTV直播软件_我是亲民_新浪博客