code: List<Iterator<BlockInfo>> getBlocksIterarors(int numShards) {
      List<Iterator<BlockInfo>> iterators = new ArrayList<Iterator<BlockInfo>>();
      if (numShards <= 0) {
        throw new IllegalArgumentException("Number of shards must be greater than 0");
      }
      for (int i = 0; i < numShards; i++) {
        Iterator<BlockInfo> iterator = blocks.shardIterator(i, numShards);
        if (iterator != null) {
          iterators.add(iterator);
        }
      }   
      return iterators;
    }
docs: Get a list of shard iterators. Each iterator will travers only a part
  of the blocks map.
  @param numShards desired number of shards
  @return list of iterators (size might be smaller than
  numShards if blocks map has fewer buckets)