Thinking in Java 11.13 Foreach与迭代器
过程:
- 类IterableClass 实现 Iterable接口
words数组And that is how we know the Earth to be banana-shaped.
main:验证foreach方法
个人实现:
package thinking;import java.util.Iterator;public class IterableClass implements Iterable<String> {private static String [] words = "And that is how we know the Earth to be banana-shaped.".split(" ");public static void main(String[] args) {// TODO Auto-generated method stubfor(String s : words){System.out.println(s);}}@Override//未写出public Iterator<String> iterator() {return new Iterator<String>() {private int index = 0;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn index>words.length;}@Overridepublic String next() {// TODO Auto-generated method stubreturn words[index++];}} ;}}
原书实现:
package thinkingjava;import java.util.Iterator;public class IterableClass implements Iterable<String> {protected String [] words = ("And that is how we know the Earth to be banana-shaped.").split(" ");@Overridepublic Iterator<String> iterator() {return new Iterator<String>() {private int index = 0;@Overridepublic boolean hasNext() {// TODO Auto-generated method stubreturn index<words.length;}@Overridepublic String next() {// TODO Auto-generated method stubreturn words[index++];}public void remove(){throw new UnsupportedOperationException();}} ;}public static void main(String[] args) {// TODO Auto-generated method stubfor(String s : new IterableClass()){System.out.print(s+" ");}}}
比较:
1、hasNext条件写反
2、完美避开了自己实现的iterator方法 :)))
Thinking in Java 11.13 Foreach与迭代器相关推荐
- Apache Ant 1.9.13和1.10.5发布–支持Java 11单文件源程序
我们刚刚发布了Apache Ant的1.9.13和1.10.5版本 . 与往常一样,您可以从Ant项目下载页面下载它. 这两个版本主要是错误修复版本. 但是,1.10.5版对" java&q ...
- Java 方法使用总结(重载、数组输出、enum和switch、foreach和迭代器、可变长度参数、重载中使用可变长度参数)
方法重载 方法名相同 方法的参数类型,参数个不一样 方法的返回类型可以不相同 方法的修饰符可以不相同 main 方法也可以被重载 class MyClass {int height;MyClass() ...
- Java中使用foreach带来的一些问题
foreach总结: foreach是java5的新特性,foreach主要是增强了for循环,在遍历数组和集合上很方便. foreach是for循环的简化版本,但是foreach不能完全取代for循 ...
- Java 8 Iterable.forEach()与foreach循环
本文翻译自:Java 8 Iterable.forEach() vs foreach loop Which of the following is better practice in Java 8? ...
- java11 是长期支持_这里有你不得不了解的Java 11版本特性说明
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- Java 11 正式发布!
有多少语言在提刀想反超 Java 的路上?但万万没想到,人家并未当回事,如今这款常青藤甚至越跑越欢,当我们还在使用 Java 7/8 时,它已经一路跑到了 11. 和预期的时间差不多,北京时间 9 月 ...
- Java源码详解六:ConcurrentHashMap源码分析--openjdk java 11源码
文章目录 注释 类的继承与实现 数据的存储 构造函数 哈希 put get 扩容 本系列是Java详解,专栏地址:Java源码分析 ConcurrentHashMap 官方文档:ConcurrentH ...
- Java源码详解五:ArrayList源码分析--openjdk java 11源码
文章目录 注释 类的继承与实现 构造函数 add操作 扩容函数 remove函数 subList函数 总结 本系列是Java详解,专栏地址:Java源码分析 ArrayList 官方文档:ArrayL ...
- Java源码详解三:Hashtable源码分析--openjdk java 11源码
文章目录 注释 哈希算法与映射 线程安全的实现方法 put 操作 get操作 本系列是Java详解,专栏地址:Java源码分析 Hashtable官方文档:Hashtable (Java Platfo ...
- Java源码详解二:HashMap源码分析--openjdk java 11源码
文章目录 HashMap.java介绍 1.HashMap的get和put操作平均时间复杂度和最坏时间复杂度 2.为什么链表长度超过8才转换为红黑树 3.红黑树中的节点如何排序 本系列是Java详解, ...
最新文章
- srand((unsigned)time(NULL))详解
- 小程序button引导用户授权
- “编译器错误信息: CS0016: 未能写入输出文件”解决方法
- Linux监听请求到达时间,4: zabbix5.0自动发现网站域名并监控访问状态和请求时间...
- Hadoop核心机制详细解析
- Exchange 2007 SP1 如何定时清理日志???
- 推荐一款文件搜索神器Everything!
- 通配符在泛型中的应用
- 用Shell脚本在推出的RAC节点上批量部署32个Oracle11gR2 RAC备份恢复案例场景的方法PART2...
- linux查代替命令,Linux下查/删/替 命令(转)
- PHP | 检查字符串中是否存在特定的单词/子字符串
- x64 结构体系下的内存寻址
- 【报告分享】2020年教育行业OMO模式转型现状研究报告.pdf(附下载链接)
- 重庆中职高考计算机专业试题,职业高中高考计算机专业试卷3答案
- 遍历Map集合的四种方式
- 非洲Affrike单词
- AT-GAN: A Generative Attack Model for Adversarial Transferring on Generative Adversarial Nets
- asp毕业设计—— 基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码)——软件信息发布系统
- Linux bc命令
- 在线文字转语音以及编辑的网址
热门文章
- Linux学习之在线安装mysql
- Android 中进程的级别以及 Service 的优先级
- docker的核心原理-cgroup
- extjs-mvc结构实践(二):基本页面
- 电子邮件.NET控件MailBee.NET Objects v11.1发布丨附下载
- java位数补0处理
- 在linux下设置开机自动启动程序的方法
- 6.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Lua 语言
- 53.NFS 服务器
- 8. 	memached安全性