Series

Iterator [Java] class DaysOfTheWeek implements Iterable - class DaysIterator implements Iterator

More Code 2018. 6. 16. 04:43


// Java : Iterator

package iteration;

import java.util.Iterator;

public class Program {

public static void main(String[] args) {
DaysOfTheWeek weekDays = new DaysOfTheWeek();

for (Object day : weekDays) {
System.out.println(day);
}

System.out.println("---- End of 1st iteration ----");

Iterator it = weekDays.iterator();
while (it.hasNext()) {
Object day = it.next();
System.out.println(day);
}

System.out.println("---- End of 2nd iteration ----");

it = weekDays.iterator();
while (it.hasNext()) {
Object day = it.next();
System.out.println(day);
}

System.out.println("---- End of 3rd iteration ----");
}
}

class DaysOfTheWeek implements Iterable {

public Iterator iterator() {
return new DaysIterator();
}
}

class DaysIterator implements Iterator {

private String[] days = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
int index;

public DaysIterator() {
index = -1;
}

public boolean hasNext() {
return index + 1 < days.length;
}

public String next() {
index++;
return days[index];
}

public void remove() {
throw new UnsupportedOperationException();
}
}