@Override
  public @NotNull Set<Entry<K, V>> entrySet() {
    return new AbstractSet<Entry<K, V>>() {
      @Override
      public @NotNull Iterator<Entry<K, V>> iterator() {
        return new MyIterator<Entry<K, V>>() {
          @Override
          Entry<K, V> fieldElement(int offset) {
            return offset == 0 ? new AbstractMap.SimpleImmutableEntry<>(k1, v1) :
                   offset == 1 ? new AbstractMap.SimpleImmutableEntry<>(k2, v2) :
                   new AbstractMap.SimpleImmutableEntry<>(k3, v3);
          }

          @SuppressWarnings("unchecked")
          @Override
          Entry<K, V> tableElement(int offset) {
            return new AbstractMap.SimpleImmutableEntry<>((K)data[offset], (V)data[offset + 1]);
          }
        };
      }

      @Override
      public int size() {
        return UnmodifiableHashMap.this.size();
      }
    };
  }
@Override
  public @NotNull Set<Entry<K, V>> entrySet()