`

Java For-each Loop & Iterable | 增强型For循环和Iterable接口

阅读更多
 
增强型For循环没什么好说的,Just see links:
http://www.leepoint.net/notes-java/flow/loops/foreach.html
http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

本篇唯一想说的是,如何在自定义的数据结构或说对象容器上使用增强型For循环?答案是让自定义的数据结构实现Iterable<T>接口。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IterableTest {
	public static void main(String[] args) {
		MyList myList = new MyList();
		myList.getEntries().add(new MyList.Entry(1,"zhang"));
		myList.getEntries().add(new MyList.Entry(2,"liu"));
		for (MyList.Entry entry : myList) {
			System.out.println(entry.getId() + " : " + entry.getName());
		}
	}
}

class MyList implements Iterable<MyList.Entry> {

	private List<Entry> entries = new ArrayList<Entry>();

    public static class Entry {
        private int id;
        private String name;
        
        public Entry(int id, String name) {
        	this.id = id;
        	this.name = name;
        }
		public int getId() {
			return id;
		}
		public String getName() {
			return name;
		}
    }
    
    @Override
	public Iterator<Entry> iterator() {
    	return entries.iterator();
	}

	public List<Entry> getEntries() {
		return entries;
	}
}
分享到:
评论

相关推荐

    is-empty-iterable:检查Iterable是否为空

    检查Iterable是否为空 比Array.from(iterable).length效率更高,因为它仅迭代第一项,这对于动态迭代器可能会产生很大的影响,例如Generator执行昂贵的操作。 安装 $ npm install is-empty-iterable 用法 import ...

    iterable-php-wrapper:用于Iterable APIPHP包装器(http

    使用您的API密钥实例化该类: $ iterable = new Iterable ( 'YOUR API KEY' );例子清单显示所有列表: $ iterable -&gt; lists (); 订阅用户到列表: $ iterable -&gt; list_subscribe ( $ list_id , array (array ( '...

    Java源码分析Iterable.pdf

    Java源码分析Iterable.pdf

    【JDK1.8源码剖析】内部迭代器 Iterable接口

    一个类如果实现了Iterable接口,就意味着“该类本身支持遍历”,并可以通过for-each这种循环语法来直接遍历。当然,一个类如果没有实现Iterable接口,也可以通过挂载外部迭代器Iterator进行遍历。 此外,内部迭代器...

    40道java集合面试题含答案(很全很详细)

    Collection接口继承自Iterable接口,这意味着可以通过for-each循环遍历集合元素。 List接口是有序的集合,可以包含重复的元素。List接口提供了按照索引位置访问元素的方法,以及添加、删除和修改元素的操作。List...

    PyPI 官网下载 | iterable-queue-1.2.0.tar.gz

    资源来自pypi官网。 资源全名:iterable-queue-1.2.0.tar.gz

    callbag-to-async-iterable::handbag:将任何可拉式Callbag来源转换为AsyncIterable

    注意:使用ES2018中的,这些仅在Node.js v10,Firefox 57+和Edge 16中有效。 复制文件ff-example.js并将其粘贴到Firefox的控制台中,以查看运行是否成功。 npm install callbag-to-async-iterable 例子 const {...

    python各种For循环讲解示例源代码总有一款适合你

    值得注意的是,Python的for循环不同于其他语言中的传统for循环,它更像是“for each”循环,直接遍历可迭代对象的元素,而不需要手动管理索引或迭代器。这种简洁的语法使得for循环在Python中非常常用且易于理解。 ...

    Python库 | iterable_orm-0.3.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:iterable_orm-0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    mparticle-android-integration-iterable

    mParticle的Iterable集成主要在服务器端。 该套件是一个可选的附加组件,用于处理可迭代的深层链接。 添加整合 将工具包依赖项添加到应用程序的build.gradle中: dependencies { implementation ' ...

    java8stream源码-java8-features:java8-功能

    java8流源码java8-功能 一些重要的 Java 8 特性是 Java 流 API Iterable 接口中的 forEach() 方法 接口中的默认和静态方法 函数式接口和 Lambda 表达式 Java时间API 集合 API 改进 并发 API 改进 选修课 Java 中的 ...

    first-of-iterable:返回可迭代对象的第一项

    返回iterable的第一项。 安装 npm install --save first-of-iterable 用法 const firstOfIterable = require ( 'first-of-iterable' ) console . log ( firstOfIterable ( [ ] ) ) //=&gt; undefined console . log ( ...

    JavaScript之iterable_动力节点Java学院整理

    遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。 具有iterable类型的集合可以通过新的for ... of循环来遍历。 ...

    java 中 Iterator 与Iterable的作用

    java 中 Iterator 与Iterable的作用;java语言需要更多基础沉淀,扎扎实实,后面的各种项目都会如何天翼。进行更高阶的用法和一些框架的原理都离开最基础的东西,基础虽然枯燥,但是也很有乐趣。

    java集合_浅谈Iterable和Iterator的区别

    下面小编就为大家带来一篇java集合_浅谈Iterable和Iterator的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    对Python中Iterator和Iterable的区别详解

    因为和迭代器相比有一个很大的不同,list/truple/map/dict这些数据的大小是确定的,也就是说有多少事可知的。但迭代器不是,迭代器不知道要执行多少次,所以可以理解为不知道有多少个元素,每调用一次next(),就会往...

    超全Java集合框架讲解.md

    超全Java集合框架讲解 - 超全Java集合框架讲解 - 集合框架总览 - Iterator Iterable ListIterator - Map 和 Collection 接口 - Map 集合体系详解 - HashMap - LinkedHashMap - TreeMap - WeakHashMap - ...

    javapoet-maven-plugin:JavaPoet Maven插件

    返回java.lang.Iterable&lt;com&gt; 。 例如: package your.name ; import com.squareup.javapoet.JavaFile ; import com.squareup.javapoet.TypeSpec ; import static java.util.Collections.singletonList ; import ...

    Java 基础核心总结 +经典算法大全.rar

    while 循环语句do...while 循环for 循环语句 跳转语句 break 语句 continue 语句面向对象 类也是-种对象对象的创建 属性和方法 构造方法 方法重载 方法的重写 初始化 类的初始化 成员初始化 构造器初始化初始化顺序 ...

    Python学习笔记之For循环用法详解

    Python 有两种类型的循环:for 循环和 while 循环。for 循环用来遍历可迭代对象。 可迭代对象是每次可以返回其中一个元素的对象, 包括字符串、列表和元组等序列类型,以及字典和文件等非序列类型。还可以使用迭代器...

Global site tag (gtag.js) - Google Analytics