code: @Override
    public Iterator<E> shardIterator(int shardId, int numShards) {
      if (shardId >= entries.length) {
        return null;
      }
      if (shardId >= numShards) {
        throw new IllegalArgumentException(
            "Shard id must be less than total shards, shardId: " + shardId
                + ", numShards: " + numShards);
      }
      return new SetIterator(shardId, numShards);
    }
docs: Get iterator over a part of the blocks map.
  @param shardId index of the starting bucket
  @param numShards next bucket is obtained by index+=numShards