docs: public static Iterator iterator(final DefaultTableModel self) {
          return new Iterator() {
              private int row = 0;
  
              public boolean hasNext() {
                  return row > -1 && row < self.getRowCount();
              }
  
              public Object next() {
                  int cols = self.getColumnCount();
                  Object[] rowData = new Object[cols];
                  for (int col = 0; col < cols; col++) {
                      rowData[col] = self.getValueAt(row, col);
                  }
                  row++;
                  return rowData;
              }
  
              public void remove() {
                  if (hasNext()) self.removeRow(row--);
              }
          };
      }