java Iterable and for each

Java api

public interface Iterable<T>
Implementing this interface allows an object to be the target of the "for-each loop", see java api

Example

public class IterableString implements Iterable<Character> {
    private String original;

    public IterableString(String original) {
        this.original = original;
    }

    public Iterator<Character> iterator() {
        return new Iterator<Character>(){
            private int index;
            public boolean hasNext() {
                return index < original.length();
            }

            public Character next() {

                return Character.valueOf(original.charAt(index++));
            }

            public void remove() {}
        }; // end of return statement
    }

}

you can use for-each to iterate character like this.

for(Character c : str) {
    System.out.println(c);
}

if you decompile this java code, you will see the compiler do this thing.

Character c;
for(Iterator iterator = str.iterator(); iterator.hasNext();
  System.out.println(c))
    c = (Character)iterator.next();

Reference

  1. java.lang.Iterable Interface Example
  2. Iterator vs Foreach In Java
  3. 神奇的 foreach
  4. JavaSE8 API
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容