code: private List<Integer> getColumnMaxWidths() {
      int numCols = data.get(0).size();
      int[] widths = new int[numCols];
  
      if (this.labels != null) {
        for (int i=0; i<numCols; i++) {
          widths[i] = this.labels.get(i).length();
        }
      }
  
      for (List<String> row : this.data) {
        for (int i=0;i<row.size(); i++) {
          if (row.get(i) == null) {
            widths[i] = Math.max(widths[i], 4);
          } else {
            widths[i] = Math.max(widths[i], row.get(i).length());
          }
        }
      }
  
      return Ints.asList(widths);
    }
docs: A function for determining the max widths of columns, accounting for labels and data.
  
  @return An array of maximum widths for the strings in each column