Iterable接口源码理解

2023-10-31


前言

本文章帮助大家对Iterable接口的理解。


一、概述

Iterable意为可迭代的。顾名思义,为让(集合)对象可以用for循环进行迭代遍历所含元素,建议实现此接口。

二、源码理解

package java.lang;

使用Iterable接口时,此包自动引入。

import java.util.Iterator;

Iterable接口重点实现iterator()以获取迭代器,其返回类型为Iterator<T>。参考Iterator接口。

Iterable接口

public interface Iterable<T> { /*...*/ }

使用接口时传入泛型T,为可迭代对象的元素的类型。

Iterable方法

iterator

Iterator<T> iterator();

重点:为使实现Iterable接口的类对象可以进行迭代遍历,那么需要实现类自定义迭代方法,即实现此方法以返回迭代器。而若要使用自定义迭代器,需实现Iterator接口的hasNextnext方法。

forEach

default void forEach(Consumer<? super T> action) { /*...*/ }

遍历所有元素,对其调用action。参考Consumer接口。default关键字给出默认实现。若参数为空,则抛出NullPointerException异常。

spliterator

default Spliterator<T> spliterator() { return Spliterators.spliteratorUnknownSize(iterator(), 0); }

返回此接口覆盖的元素的未给定大小的分割迭代器,可用来遍历、分割序列。参考Spliterators.spliteratorUnknownSize方法。default关键字给出默认实现。


总结

新人源码理解,望大家多多指点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Iterable接口源码理解 的相关文章

随机推荐

  • Transformers训练预处理datasets出现Socket Timeout

    原因 ddp的时候默认等待时间是1800s 如果超出这个时间程序就会退出 解决方法 更新transformers库 低版本不支持如下方式 并添加参数 ddp timeout 3600 这里3600s只是demo 具体根据自身程序来设置
  • 手把手前端入门笔记之vue-element-admin-01

    前言 本文主要为vue element admin框架的入门教程 本人2年后端开发经验 想自学前端转全栈工程师 听着就好酷 直接上手实战应该是入门前端最快的方式了 在此记录下学习过程 希望可以对初学者有所帮助 如有错误或未考虑完全的地方 望
  • 以太坊使用puppeth工具

    puppeth源于官方的项目编译后 https github com ethereum go ethereum即可得到要得到的内容 只想用工具 不想自己编译 博主编译了一份所有的工具都有 下载 https download csdn net
  • LeetCode题目笔记——面试题 01.03. URL化

    文章目录 题目描述 题目难度 简单 方法一 替换空格 代码 Python 方法二 构造新字符串 代码 Python C 方法三 将 20插入到原字符串中 总结 题目描述 URL化 编写一种方法 将字符串中的空格全部替换为 20 假定该字符串
  • Weblogic 12c 集群环境搭建

    本文是在windows7操作系统下配置的 jdk版本1 7 weblogic版本12 1 3 0 0 搭建集群前的规划 其中AdminServer是总控制端 server1 server2 server3是集群中的三个服务节点 其中Admi
  • vue2 new Date() 转换为年月日时分秒以及星期几(padStart补零) - 附完整示例

    new Date 效果 2022年07月12日 星期二 17 19 29 一 new Date 在vue2中使用new Date 转换为年月日时分秒以及星期几 padStart补零 二 使用步骤 1 data中声明定时器以及在methods
  • Sketch装机必备!10款Sketch 插件使用率超高!

    本文给大家推荐和整理了 10款 使用率超高的 Sketch 插件 Sketch 是一款深受 UI 设计师欢迎的 UI 设计工具 由于其轻便的格式 简洁的 UI 界面操作 很快风靡 UI 设计行业 其 Sketch 的插件尤为强大 可谓是让
  • matlab练习程序(线性分类器<最小二乘>)

    clear all close all clc num 4 元素数量 k 180 迭代次数 step 0 1 迭代步长 w 1 0 5 1 1 权值 x 1 0 0 输入的值 每行为一组 1 1 0 1 0 1 1 1 1 d 1 0 1
  • 两种产生随机数的方式之间的对比(Math.random()方法 和 Random类)

    在实际开发中 产生随机数的使用很普遍 而在JAVA中主要提供了两种方式产生随机数 其一 调用Math类中的random 方法 其二 使用Random类 一 Math random 方法 基本概述 这个方法能够产生在 0 0 1 0 之间的随
  • VueCli3+vue2.6兼容ie11

    一 首先确定babel polyfill版本号 babel polyfill 7 4 0以前使用babel polyfill 之后使用core js stable 和 regenerator runtime 可参考官方文档babel pol
  • Redis报错 Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

    cmd窗口输入 redis server exe redis windows conf 报错 Creating Server TCP listening socket 127 0 0 1 6379 bind No error 解决方法 cm
  • 【毕业设计】图像处理-毕业设计-相关题目-含matlab源代码

    毕业设计 0001 基于图像处理的一维条形码识别 含MATLAB源码 毕业设计 0002 一种图像中值滤波 边缘检测 hough变换检测直线的用户界面开发 含matlab源代码 如有疑问 可私信博主 持续更新中
  • java文档注释的基本认识

    Java 程序员都应该知道 JDK 开发最好的帮助信息就来自 SUN 发布的 Java 文档 它分包分类地提供了各方法 属性的帮助信息 具有详细的类树信息 索引信息等 并提供了许多相关类之间的关系 如继承 实现接口 引用等 Java 文档全
  • 【JUC】浅析ConcurrentLinkedQueue

    JUC 浅析ConcurrentLinkedQueue 文章目录 JUC 浅析ConcurrentLinkedQueue 一 前言 二 ConcurrentLinkedQueue的结构 三 入队列 3 1 入队列的过程 3 2 定位尾节点
  • 联想笔记本使用linux时不能连接WiFi

    1 每次开机不能使用无线网 输入 rfkill list 发现ideapad laptop处于blocked yes状态 使用以下命令解除锁定便可以使用wifi sudo modprobe r ideapad laptop 2 将ideap
  • IO会一直占用CPU吗?一个很好的关于并发/并行系统的问题(转)

    这是一个很好的关于并发 并行系统的问题 简单回答就是 IO所需要的CPU资源非常少 大部分工作是分派给DMA Direct Memory Access 直接内存存取 完成的 先不谈传统的5大IO模型 先说说并发 Concurrencey 一
  • cmake学习(一)静态库与动态库构建

    http blog sina com cn s blog 5413483701016br0 html so 共享库 shared object 节省空间 在运行时去连接 如果执行机器上没有这些库文件就不能执行 a 静态库 archive 静
  • 【端口转发】内网端口转发

    0x001 lcx使用 1 肉鸡上执行 lcx exe slave 公网 ip 端口 肉鸡 ip 端口 例如 lcx exe slave xxx xxx xxx xxx 10000 127 0 0 1 3389 意思是把肉鸡的 3389 端
  • 正则表达式相关知识总结记录(日常开发)

    文章目录 正则表达式相关知识总结记录 日常开发 常用正则表达式 正则表达式 1 1正则表达式 数量词 1 2 正则表达式 字符类 1 3 正则表达式 逻辑运算符 1 4 正则表达式 预定义字符 1 5 忽略大小写的写法 1 6 贪婪爬取和非
  • Iterable接口源码理解

    文章目录 前言 一 概述 二 源码理解 包 Iterable接口 Iterable方法 iterator forEach spliterator 总结 前言 本文章帮助大家对Iterable接口的理解 一 概述 Iterable意为可迭代的