为什么数组没有实现Iterable接口,但可以使用foreach语句遍历
Posted Just Go Ahead !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么数组没有实现Iterable接口,但可以使用foreach语句遍历相关的知识,希望对你有一定的参考价值。
在Java中,对于数组为什么能够使用foreach语句一直感觉很困惑。
对于能够使用foreach语句进行遍历的对象,只有两种情况,其中一种是遍历对象必须实现Iterable接口,实现ierator()方法,这是对象使用foreach语句的前提。另外一种情况就是特殊对象数组。那么对于数组可以使用foreach该如何去理解呢?
首先需要说明的是,实现了java.lang.Iterable接口的对象可以用for-each去遍历,但是能用for-each去遍历的不一定实现了该接口,比如数组这个特殊对象就是这一特殊情况。但是网上关于这方面的资料很少,自己只能说下自己的理解。
我认为数组对象之所以能够使用foreach语句进行遍历元素,是因为JVM在底层将对于数组的foreach循环转换为对于这个数组每一个的循环引用。类似在底层转化成了普通的for语句一样,得以保证我们使用foreach语句时候能够正确的进行遍历。
以上是关于为什么数组没有实现Iterable接口,但可以使用foreach语句遍历的主要内容,如果未能解决你的问题,请参考以下文章
请问java中的Iterator和Iterable有些啥区别啊?