Java 迭代 Iteration
Java提供了 foreach (enhanced for) 的循环简写语法: ArrayMap<String, Integer> am = new ArrayMap<String, Integer>(); for (String s : am) { System.out.println(s); } 实现的关键原理是使用Iterable接口使一个类变成可迭代的: 该接口包含一个iterator()方法用于返回一个Iterator对象。Iterator接口定义Iterator对象和hasNext(), next()方法来进行实际的迭代操作。 public class ArrayMap<K, V> implements Map61B<K, V>, Iterable<K> { private K[] keys; private V[] values; int size; public ArrayMap() { keys = (K[]) new Object[100]; values = (V[]) new Object[100]; size = 0; } @Override public Iterator<T> iterator() { return new KeyIterator(); } public class KeyIterator implements Iterator<K> { private int ptr; public KeyIterator() { ptr = 0; } public boolean hasNext() { return (ptr != size); } public K next() { K returnItem = keys[ptr]; ptr = ptr + 1; return returnItem; } } } 不同的数据结构,Iterator有不同的实现方式. ...