public MapIterator<K, V> mapIterator() {
        if (size == 0) {
            return EmptyOrderedMapIterator.INSTANCE;
        }
        return new LinkMapIterator<K, V>(this);
    }
Gets an iterator over the map.
Changes made to the iterator affect this map.
<p/>
A MapIterator returns the keys in the map. It also provides convenient
methods to get the key and value, and set the value.
It avoids the need to create an entrySet/keySet/values object.

@return the map iterator
jphp-runtime/src/php/runtime/common/collections/map/AbstractLinkedMap.java