java for each循环的原理 博客分类: java
程序员文章站
2024-03-14 11:54:10
...
这篇介绍java for each原理的文章写的很棒,转过来marke一下。
http://blog.csdn.net/zhangyuan19880606/article/details/51241079
在编译的时候编译器会自动将对for这个关键字的使用转化为对目标的迭代器的使用,这就是foreach循环的原理。进而,我们再得出两个结论:
1、ArrayList之所以能使用foreach循环遍历,是因为ArrayList所有的List都是Collection的子接口,而Collection是Iterable的子接口,ArrayList的父类AbstractList正确地实现了Iterable接口的iterator方法。
2、任何一个集合,无论是JDK提供的还是自己写的,只要想使用foreach循环遍历,就必须正确地实现Iterable接口
实际上,这种做法就是23中设计模式中的迭代器模式。
http://blog.csdn.net/zhangyuan19880606/article/details/51241079
在编译的时候编译器会自动将对for这个关键字的使用转化为对目标的迭代器的使用,这就是foreach循环的原理。进而,我们再得出两个结论:
1、ArrayList之所以能使用foreach循环遍历,是因为ArrayList所有的List都是Collection的子接口,而Collection是Iterable的子接口,ArrayList的父类AbstractList正确地实现了Iterable接口的iterator方法。
2、任何一个集合,无论是JDK提供的还是自己写的,只要想使用foreach循环遍历,就必须正确地实现Iterable接口
实际上,这种做法就是23中设计模式中的迭代器模式。
推荐阅读
-
java for each循环的原理 博客分类: java
-
java static关键字的作用 博客分类: java static关键字
-
java中判断字符串是否为数字的三种方法 博客分类: java java
-
java中判断字符串是否为数字的三种方法 博客分类: java java
-
Java中的CAS理论 compare and swap 博客分类: java java
-
可以保持session的java代码片段 博客分类: java
-
可以保持session的java代码片段 博客分类: java
-
多线程实现原理并发机制 博客分类: java
-
Guava包的ListenableFuture解析 博客分类: java
-
JAVA 的MD5加密算法简单实现 博客分类: java 算法JavaBeanSecurityJ#