您的位置:首页 > 编程语言 > Java开发

Java基础 foreach实现原理

2016-03-23 15:20 656 查看
java中List继承了Collection

public interface List<E> extends Collection<E>
而Collection又继承了Iterable接口

public interface Collection<E> extends Iterable<E>
进入到Itreable接口,发现官方对其作用的描述为:实现了该接口的对象可以作为foreach的目标。内部只定义了一个迭代器

/**
* Implementing this interface allows an object to be the target of
* the "foreach" statement.
*
* @param <T> the type of elements returned by the iterator
*
* @since 1.5
*/
public interface Iterable<T> {

/**
* Returns an iterator over a set of elements of type T.
*
* @return an Iterator.
*/
Iterator<T> iterator();
}


foreach的使用最终被转化成对Iteartor.next()的调用。

package com.cupdata.zicon.basic;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TheoryTest {

public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("abc1");
list.add("abc2");
list.add("abc3");
/* foreach */
for (String str : list) {
System.out.println(str);
}
System.out.println("===============");
/* Iterator实现 */
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: