code: public void moveColumn(Object columnKey, int newColumnIndex) {
          checkFrozen();
  
          this.checkColumnIndex(newColumnIndex);
  
          final int columnIndex = this.getColumnIndex(columnKey);
          final List<C> tmp = new ArrayList<>(columnLength());
          tmp.addAll(_columnKeySet);
          tmp.add(newColumnIndex, tmp.remove(columnIndex));
  
          _columnKeySet.clear();
          _columnKeySet.addAll(tmp);
  
          _columnKeyIndexMap = null;
  
          if (_initialized && _columnList.size() > 0) {
              _columnList.add(newColumnIndex, _columnList.remove(columnIndex));
          }
      }
docs: Move the specified column to the new position.
  
  @param columnKey
  @param newColumnIndex