code: public SparseDoubleVector getColumnVector(int column) {
          checkIndices(0, column);
          rowReadLock.lock();
          SparseDoubleVector values = new SparseHashDoubleVector(rows.get());
          for (int row = 0; row < rows.get(); ++row) {
              AtomicSparseVector rowEntry = getRow(row, -1, false);            
              double value = 0;
              if (rowEntry != null && (value = rowEntry.get(column)) != 0)
                  values.set(row, value);
          }
          rowReadLock.unlock();
          return values;
      }
docs: {@inheritDoc} The length of the returned row vector reflects the size of
  matrix at the time of the call, which may be different from earlier calls
  to {@link #rows()}