迭代 Iterable與Iterator

Iterable實現這個接口允許對象成爲foreach語句的目標
方法:
Iterator iterator:返回一個在一組T類型的元素上進行迭代的迭代器

package com.ls.java8.Iter;

import java.util.Iterator;

class Student{
    String name;
    public Student(String name) {
    this.name =name;
    }
}

class Clazz implements Iterable<Student>{
    Student[] students;
    public Clazz(int num) {
    students=new Student[num];
    }
    int index=0;
    public void add(Student s) {
    students[index]=s;
    index++;
    }
    @Override
    public Iterator<Student> iterator() {

        return new Iterator<Student>() {
            int index=0;
            @Override
            public boolean hasNext() {
                return index!=students.length;
            }

            @Override
            public Student next() {
                return students[index++];
            }
        };
    }
}

public class IterDemo {

    public static void main(String[] args) {
        Clazz c=new Clazz(3);
        Student s1=new Student("s1");
        Student s2=new Student("s2");
        Student s3=new Student("s3");
        c.add(s1);
        c.add(s2);
        c.add(s3);


        for(Student s:c) {
            System.out.println(s.name);
        }
    }

}
發佈了48 篇原創文章 · 獲贊 1 · 訪問量 7487
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章