code: public void swapRows(Object rowKeyA, Object rowKeyB) {
          checkFrozen();
  
          final int rowIndexA = this.getRowIndex(rowKeyA);
          final int rowIndexB = this.getRowIndex(rowKeyB);
  
          final List<R> tmp = new ArrayList<>(rowLength());
          tmp.addAll(_rowKeySet);
          final R tmpRowKeyA = tmp.get(rowIndexA);
          tmp.set(rowIndexA, tmp.get(rowIndexB));
          tmp.set(rowIndexB, tmpRowKeyA);
  
          _rowKeySet.clear();
          _rowKeySet.addAll(tmp);
  
          _rowKeyIndexMap.forcePut(tmp.get(rowIndexA), rowIndexA);
          _rowKeyIndexMap.forcePut(tmp.get(rowIndexB), rowIndexB);
  
          if (_initialized && _columnList.size() > 0) {
              E tmpVal = null;
  
              for (List<E> column : _columnList) {
                  tmpVal = column.get(rowIndexA);
                  column.set(rowIndexA, column.get(rowIndexB));
                  column.set(rowIndexB, tmpVal);
              }
          }
      }
docs: Swap the positions of the two specified rows.
  
  @param rowKeyA
  @param rowKeyB