@Override
  public @NotNull Set<K> keySet() {
    if (isEmpty()) return Collections.emptySet();

    LinkedHashSet<K> result = new LinkedHashSet<>();
    for (Entry<K, V> entry : entrySet()) {
      result.add(entry.getKey());
    }
    return Collections.unmodifiableSet(result);
  }
@Override
  public @NotNull Set<K> keySet()