马士兵设计模式视频及源码分享链接:
链接: https://pan.baidu.com/s/1bHhkU6 密码: 35bd
Iterator本身也是四人帮本身定义的23种设计模式之一,用的并不多,一般只是出现在容器的遍历。
首先我们先写一个可以动态添加对象的容器:
public class ArrayList {
//使用数组来模拟一个可以装任意数量的容器
Object[] objects = new Object[10];
int index = 0;
public void add(Object o) {
if (index == objects.length) {
Object[] newObjects = new Object[objects.length * 2];
System.arraycopy(objects, 0, newObjects, 0, objects.length);
objects = newObjects;
}
objects[index++] = o;
}
public int size() {
return index;
}
}
这个容器就是使用数组进行创建的,但是相比数组而言,不需要考虑数组边界的问题,可以进行动态扩展。我们还可以根据类型向集合中添加元素。例如我们可以创建一个猫的类型,然后在容器中对猫进行添加。
public class Cat {
private int id;