code: private static long storageCalculation(int rows, int lineChars, long totalCharacters) {
          long size = (long) Math.ceil((rows* ARRAY_LIST_ROW_OVERHEAD + lineChars + totalCharacters) * LIST_CAPACITY_MULTIPLIER);
          return size;
      }
docs: This calculation attempts to calculate how much storage x number of rows may use in an ArrayList assuming that
  capacity may be up to 1.5 times the actual space used.
  @param rows rows
  @param lineChars the amount of new character data we want to add
  @param totalCharacters total amount of characters already stored
  @return long a guesstimate for storage required