gowtham900

AbstractMap

Oct 22nd, 2021
902
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.security.PublicKey;
  2. import java.util.Iterator;
  3. import java.util.Map;
  4.  
  5. public abstract class AbstractMap<K,V> implements Map<K,V> {
  6.     public boolean isEmpty() {
  7.         return size() == 0;
  8.     }
  9.  
  10.     protected static class MapEntry<K, V> implements Entry<K, V> {
  11.         private K k;
  12.         private V v;
  13.  
  14.         public MapEntry(K key, V value) {
  15.             k = key;
  16.             v = value;
  17.         }
  18.  
  19.         public K getKey() {
  20.             return k;
  21.         }
  22.  
  23.         public V getValue() {
  24.             return v;
  25.         }
  26.  
  27.         protected void setKey(K key) {
  28.             k = key;
  29.         }
  30.  
  31.         protected V setValue(V value) {
  32.             V old = v;
  33.             v = value;
  34.             return old;
  35.         }
  36.     }
  37.  
  38.     private class KeyIterator implements Iterator<K> {
  39.         private Iterator<Entry<K, V>> entries = entrySet().iterator();
  40.  
  41.         public boolean hasNext() {
  42.             return entries.hasNext();
  43.  
  44.  
  45.         }
  46.         public K next(){
  47.             return entries.next().getKey();
  48.         }
  49.         public void remove(){
  50.             throw new UnsupportedOperationException();
  51.         }
  52.         private class  ValueIterable implements Iterable<V>{
  53.             public Iterator<V>iterator(){
  54.                 return new ValueIterator();
  55.             }
  56.             public Iterable<V> values(){
  57.                 return new ValueIterable();
  58.             }
  59.         }
  60.     }
  61. }
RAW Paste Data