`

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;
	}
}
分享到:
评论

相关推荐

    Java for-each循环使用难题2例(高级使用方法)

    Java的for-each循环,也称为增强for循环,是自Java 5引入的一项特性,它极大地简化了集合和数组的遍历操作。在传统的for循环中,我们需要手动管理索引,而在迭代器模式中,我们需要调用`hasNext()`和`next()`方法。...

    详解JAVA中的for-each循环与迭代

    接下来,我们转向`for-each`循环,也称为增强型for循环,自Java 5引入以来,它极大地简化了遍历集合和数组的过程。`for-each`循环的语法如下: ```java for (Type item : collectionOrArray) { // 使用item } ``` ...

    Java增强的for循环

    Java增强的for循环是Java 5.0中引入的一种新的循环语法,旨在简化数组和集合的遍历操作。这种循环语法可以使代码更加简洁,让程序员使用时更加方便。但是,增强的for循环也存在一些局限性,需要根据实际需要选择合适...

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

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

    JDK1.5中增强for循环

    随着 Java 技术的不断发展,为了提高开发效率、简化代码编写并增强可读性,JDK 1.5 引入了一系列的新特性,其中就包括了增强 for 循环(Enhanced For Loop),也被称作“for-each”循环。这一特性极大地简化了数组和...

    Java源码分析Iterable.pdf

    Java源码分析Iterable是Java编程语言中一个基础组件的源码分析,Iterable是一个接口,它允许对象被迭代,例如foreach循环中的数组或集合。了解Iterable的源码,可以帮助开发者更好地理解Java编程语言的实现机制。 ...

    mongo-java-driver-3.2.2.jar.zip

    MongoDB是一个流行的开源、文档型数据库系统,而`mongo-java-driver`是官方提供的Java API,允许开发者在Java应用程序中执行各种数据库操作,如读取、写入、查询等。 在本例中,我们讨论的是`mongo-java-driver`的...

    Java for循环几种写法整理

    在J2SE 1.5中引入的增强型for循环,也称为foreach或for-each loop,简化了遍历数组和集合的过程。例如: ```java int[] integers = {1, 2, 3, 4}; for (int i : integers) { System.out.println(i); } ...

    全面解析JavaScript里的循环方法之forEach,for-in,for-of

    在JavaScript中,有三种主要的循环方法:`forEach`、`for-in`和`for-of`,每种都有其特定的用途和特点。 `forEach`方法是ES5引入的一个数组方法,简化了对数组元素的遍历。例如: ```javascript myArray.forEach...

    增强for循环

    增强型for循环不仅适用于数组,还可以用于任何实现了`Iterable`接口的对象,如`ArrayList`、`LinkedList`、`HashSet`等集合框架类。例如,遍历一个`ArrayList`: ```java ArrayList&lt;String&gt; list = new ArrayList()...

    JDK5增强for循环的使用

    而对于集合,由于它们通常实现`Iterable`接口,所以可以直接使用增强for循环。 然而,增强for循环并不是万能的,它有一些限制: 1. **不可变性**:在增强for循环内部,你不能修改正在迭代的集合或数组,因为这可能...

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

    例如,`Collection`、`List`和`Set`都是`Iterable`接口的实现类,因此可以使用`for-each`循环。实现`Iterable`的好处在于,每次调用`iterator()`都会返回一个新的、独立的迭代器,每个迭代器都有自己的状态,不会...

    java JDK1.5---32位和64位

    5. **增强的for循环(Enhanced For Loop)**:也被称为foreach循环,简化了遍历数组和集合的代码,使得代码更易读。 6. **类型安全的异构容器(Collections Framework Enhancements)**:对集合框架进行了增强,如...

    JAVA的高级新特性

    - For-Each循环,又称为增强型for循环,是从Java 5开始引入的。它的主要目的是简化对数组和集合的遍历。在传统的for循环中,我们需要手动初始化、递增和检查终止条件。而For-Each循环通过以下语法糖简化了这一过程...

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

    标签中提到了"zookeeper"、"分布式"和"云原生(cloud native)",这暗示`iterable-queue`可能具有与分布式系统和云环境相关联的功能。ZooKeeper是一个分布式的,开放源码的协调服务,用于管理应用程序配置、维护命名...

    详解Java中的增强 for 循环 foreach

    "Java 中的增强 for 循环 foreach" Java 中的增强 for 循环 foreach 是一种语法糖,它能够提高性能,并减少代码出错的几率。foreach 循环是用来对数组或者集合进行遍历的语法,具体语法如下:for(元素类型 ele : ...

    JDK新特性.doc

    此外,for-each循环不仅适用于数组,还适用于任何实现了`Iterable`接口的对象,比如集合类。例如,对于`ArrayList`,可以这样遍历: ```java ArrayList&lt;String&gt; list = new ArrayList(); list.add("Apple"); list....

    Java-collection-frame.rar_Java集合框架

    Iterable是所有可迭代集合的超接口,通过for-each循环实现元素遍历。 8. Stream API:Java 8引入了Stream API,提供了一种声明式编程风格,用于处理集合和I/O流。它支持并行处理,能更高效地处理大量数据。 9. ...

    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--collection.rar_SEP_java 集合

    9. **Iterable** 接口是所有集合类的超接口,提供了foreach循环的支撑。 在实际开发中,理解并熟练使用这些集合类和接口能够极大地提高代码的效率和可读性。例如,根据业务需求选择适合的集合类型,使用...

Global site tag (gtag.js) - Google Analytics