package xapi.collect.impl; import java.util.Iterator; import java.util.Map.Entry; public class EntryKeyAdapter <K, V> implements Iterable<K> { private class KeyIterator implements Iterator<K>{ private Iterator<Entry<K,V>> source; public KeyIterator(Iterator<Entry<K, V>> source) { this.source = source; } @Override public boolean hasNext() { return source.hasNext(); } @Override public K next() { return source.next().getKey(); } @Override public void remove() { source.remove(); } } private Iterable<Entry<K,V>> source; public EntryKeyAdapter(Iterable<Entry<K,V>> source) { this.source = source; } @Override public Iterator<K> iterator() { return new KeyIterator(source.iterator()); } }