code: public VectorIterator nonZeroIteratorOfColumn(int j) {
          final int jj = j;
          return new VectorIterator(rows) {
              private int i = -1;
  
              @Override
              public int index() {
                  return i;
              }
  
              @Override
              public double get() {
                  return SparseMatrix.this.get(i, jj);
              }
  
              @Override
              public void set(double value) {
                  SparseMatrix.this.set(i, jj, value);
              }
  
              @Override
              public boolean hasNext() {
                  while (i + 1 < rows && SparseMatrix.this.isZeroAt(i + 1, jj)) {
                      i++;
                  }
  
                  return i + 1 < rows;
              }
  
              @Override
              public Double next() {
                  if(!hasNext()) {
                      throw new NoSuchElementException();
                  }
                  i++;
                  return get();
              }
          };
      }
docs: Returns a non-zero vector iterator of the given column {@code j}.
  
  @return a non-zero vector iterator