code: public int consume(IndexValueConsumer consumer) {
          int filledChunks = getFilledChunks();
          int offset;
          for (int i = 0; i < filledChunks ; i++) {
              offset = i * chunkSize;
              int[] chunk = chunks[i];
              if (chunk!=null) {
                  for (int j = 0; j < chunkSize; j++) {
                      consumer.accept(offset+j, chunk[i]);
                  }
              }
          }
          int remainder = size() % chunkSize;
          if (remainder != 0) {
              offset = filledChunks * chunkSize;
              int[] chunk = chunks[filledChunks];
              for (int j = 0; j < remainder; j++) {
                  consumer.accept(offset+j, chunk[j]);
              }
          }
          return size();
      }
docs: internal iteration over data, avoids checks in {@link #get(int)}
  @return total size of this Chunks