@Override
  @NotNull
  public Iterator<T> iterator() {
    return ContainerUtil.filterIterator(ContainerUtil.mapIterator(set.iterator(), Reference::get), Objects::nonNull);
  }
@Override
  @NotNull
  public Iterator<T> iterator()