提供一个方法顺序访问一个容器内的元素,而又不暴露该对象的内部表示。
public interface Iterator<E> {
boolean hasNext();
E next();
//java8后加入的default方法
...
}
public interface Iterable<T> {
Iterator<T> iterator();
//java8后加入的default方法
...
}
public class Class implements Iterable<Student> {
private final List<Student> students = new ArrayList<>();
public boolean addStudent(Student student){
return students.add(student);
}
public boolean removeStudent(Student student){
return students.remove(student);
}
@Override
public Iterator<Student> iterator() {
return new Itr();
}
private class Itr implements Iterator<Student> {
int index = 0;
@Override
public boolean hasNext() {
if (index < students.size()) {
return true;
}
return false;
}
@Override
public Student next() {
Student student = students.get(index);
index++;
return student;
}
}
}
根据以下文章总结:
-
Java设计模式:23种设计模式全面解析(超级详细)HYPERLINK http://c.biancheng.net/design_pattern/
-
设计模式 https://blog.csdn.net/shusheng0007/category_8638565.html
-
java设计模式 https://blog.csdn.net/qq_37909508/category_8976362.html
-
设计模式 https://www.cnblogs.com/zuoxiaolong/category/509144.html
-
设计模式 在源码中的应用 https://blog.csdn.net/qq_36970993/category_10620886.html
-
Android系统设计中存在设计模式分析 https://www.2cto.com/kf/201208/150650.html
-
Android设计模式系列 - 基于android的各种代码分析各种设计模式 https://www.cnblogs.com/qianxudetianxia/category/312863.html