Java基础 foreach实现原理
2016-03-23 15:20
656 查看
java中List继承了Collection
foreach的使用最终被转化成对Iteartor.next()的调用。
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()); } } }
相关文章推荐
- Java第三次实验要求
- Java实现剪切复制粘贴功能(含不同文本域的判断)
- Java管道流PipedStream
- java tar.gz文件生成
- JAVA复习(7)-线程间通信
- 关于用gradle构建spring源码环境的多次尝试
- Spring Bean的延迟初始化
- java 泛型
- Java中静态数据的初始化顺序
- java实用验证码的实现代码
- Java多线程系列--“JUC集合”02之 CopyOnWriteArrayList
- java byte 16进制转换
- eclipse 快速修复.(转)
- java中String类型变量的赋值问题
- Java实现查找替换功能
- 新手笔记:java 堆栈
- JavaBean实例训练2:编写JavaBean,实现用户登录、注册。
- 反射[reflection]在java中的使用
- 一、Java技术基础
- 理解Java虚拟机