@NotNull
    @Override
    public Set<Entry<IdIndexEntry, Integer>> entrySet() {
      return new AbstractSet<>() {
        @Override
        public Iterator<Entry<IdIndexEntry, Integer>> iterator() {
          return new Iterator<>() {
            final ObjectIterator<Int2IntMap.Entry> myIterator = myOccurrences.int2IntEntrySet().iterator();

            @Override
            public boolean hasNext() {
              return myIterator.hasNext();
            }

            @Override
            public Entry<IdIndexEntry, Integer> next() {
              Int2IntMap.Entry entry = myIterator.next();
              return Map.entry(new IdIndexEntry(entry.getIntKey()), entry.getIntValue());
            }
          };
        }

        @Override
        public int size() {
          return myOccurrences.size();
        }
      };
    }
@NotNull
    @Override
    public Set<Entry<IdIndexEntry, Integer>> entrySet()