@File
2020-04-09T04:54:19.000000Z
字数 886
阅读 194
java
import java.util.AbstractCollection; // 集合父类import java.util.Iterator; // 迭代器接口/*** 自定义一个集合*/public class TestForEach<T> extends AbstractCollection<T> {private int size; // 集合大小private Object[] value; // 集合容器// 随便赋个值public TestForEach(Object[] value) {this.size = value.length;this.value = value;}/*** 重写迭代器* @return 迭代器*/@Overridepublic Iterator<T> iterator() {return new Ite<>();}/*** 大小的获取方法*/@Overridepublic int size() {return size;}/*** 迭代器*/private class Ite<E> implements Iterator<E>{private int cursor; // 当前位置,也可以理解为指针/*** 重写判断下一个元素是否存在方法*/@Overridepublic boolean hasNext() {return cursor != size;}/*** 重写获取下一个元素值的逻辑*/@Overridepublic E next() {if(cursor < size){return (E)value[cursor++];}return null;}}}
AbstractCollection 集合的父类
1) 只读集合:
iterator() 和 size()2) 可改集合:
add() 方法Iterator 迭代器接口
1) 只读迭代器:
hasNext 和 next2) 可改迭代器:
remove() 方法