code: @Override
      public IntIterator iterator() {
  
          return new IntIterator() {
  
              private int i = 0;
  
              @Override
              public int nextInt() {
                  return i++;
              }
  
              @Override
              public int skip(int k) {
                  return i + k;
              }
  
              @Override
              public boolean hasNext() {
                  return i < rowCount();
              }
          };
      }
docs: Returns a 0 based int iterator for use with, for example, get(). When it returns 0 for the first row,
  get will transform that to the 0th row in the selection, which may not be the 0th row in the underlying
  table.