@Override
  public @NotNull Set<Entry<K, V>> entrySet() {
    if (isEmpty()) return Collections.emptySet();

    LinkedHashSet<Entry<K, V>> set = new LinkedHashSet<>();
    if (myMap instanceof Map) {
      for (Entry<K, V> entry : asMap().entrySet()) {
        set.add(new AbstractMap.SimpleImmutableEntry<>(entry));
      }
    } else {
      Object[] array = (Object[])myMap;
      for (int i = 0; i < array.length; i += 2) {
        //noinspection unchecked
        set.add(new AbstractMap.SimpleImmutableEntry<>((K)array[i], (V)array[i + 1]));
      }
    }
    return Collections.unmodifiableSet(set);
  }
@Override
  public @NotNull Set<Entry<K, V>> entrySet()