code: @Override
      public Iterator<Datum<SparseArray>> iterator() {
          return new Iterator<Datum<SparseArray>>() {
  
              /**
               * Current position.
               */
              int i = 0;
  
              @Override
              public boolean hasNext() {
                  return i < data.size();
              }
  
              @Override
              public Datum<SparseArray> next() {
                  return get(i++);
              }
  
              @Override
              public void remove() {
                  SparseDataset.this.remove(i);
              }
          };
      }
docs: Returns an iterator over the elements in this dataset in proper sequence.
  @return an iterator over the elements in this dataset in proper sequence