Java中的Iterable与Iterator详解 (2)

现在还不能支持for each循环访问,因为我们还没有实现iterable接口,首先在ArrayMap中实现Iterable接口:

public class ArrayMap<K, V> implements Iterable<K> { private K[] keys; private V[] values; int size; public ArrayMap() { keys = (K[]) new Object[100]; values = (V[]) new Object[100]; size = 0; } .... }

然后重写iterator()方法,并在其中返回我们自己的迭代器对象(iterator)

@Override public Iterator<K> iterator() { return new KeyIterator(); }

注意我们自定义的KeyIterator类必须要实现Iterator接口,否则在iterator()方法中返回的类型不匹配。

总结与感想

(1)学会深入思考,一点点抽丝剥茧,多想想为什么这样实现,很多问题没有自己想象中的那么复杂。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzyws.html