code: public void setColumn(int column, DoubleVector rowValues) {
          checkIndices(rowValues.length(), column, true);
          int r = rows.get();
          lockColumn(column, r);
          boolean modified = false;
          for (int row = 0; row < r; ++row) {
              double val = rowValues.get(row);
              Entry e = new Entry(row, column);
              boolean present = matrixEntries.containsKey(e);
              if (val != 0) {
                  matrixEntries.put(e, val);
                  // Only invalidate the cache if the number of rows or columns
                  // containing data has changed
                  modified = modified || !present;
              }
              else if (present) {
                  matrixEntries.remove(e);
                  modified = true;
              }
          }
          if (modified)
              modifications.incrementAndGet();
          unlockColumn(column, r);
      }
docs: {@inheritDoc}