code: @Override
      public Set<Map.Entry<K, V>> entrySet() {
          return new AbstractSet<Map.Entry<K, V>>() {
              @Override
              public Iterator<Map.Entry<K, V>> iterator() {
                  return new ObjIterator<Map.Entry<K, V>>() {
                      private final Iterator<Map.Entry<K, V>> keyValueEntryIter = keyMap.entrySet().iterator();
  
                      @Override
                      public boolean hasNext() {
                          return keyValueEntryIter.hasNext();
                      }
  
                      @Override
                      public Map.Entry<K, V> next() {
                          final Map.Entry<K, V> entry = keyValueEntryIter.next();
  
                          return new Map.Entry<K, V>() {
                              @Override
                              public K getKey() {
                                  return entry.getKey();
                              }
  
                              @Override
                              public V getValue() {
                                  return entry.getValue();
                              }
  
                              @Override
                              public V setValue(V value) {
                                  //    if (N.equals(entry.getValue(), value)) {
                                  //        return entry.getValue();
                                  //    }
                                  //
                                  //    //    if (valueMap.containsKey(value)) {
                                  //    //        throw new IllegalStateException("Value: " + N.toString(value) + " already existed.");
                                  //    //    }
                                  //
                                  //    valueMap.remove(entry.getValue());
                                  //    valueMap.put(value, entry.getKey());
                                  //    return entry.setValue(value);
  
                                  throw new UnsupportedOperationException();
                              }
                          };
                      }
                  };
              }
  
              @Override
              public int size() {
                  return keyMap.size();
              }
          };
      }
docs: Returns an immutable Set of Immutable entry.