Вы можете только распараллелить и, следовательно, ускорить форматирование строк, но не объединение отформатированных частей, поскольку они должны быть в порядке.
Вы также можете объединить отформатированные части через поток, ноцикл for быстрее.Таким образом, вы получите:
// just some example values
ArrayList<String> a = new ArrayList(Arrays.asList("string1", "string2", "string3", "string4", "string5"));
// formatting them in parallel
List<String> formatted = a.parallelStream().map(s -> String.format("%-45s", s)).collect(Collectors.toList());
// concatenating them in order
StringBuilder sb = new StringBuilder();
for (ListIterator<String> i = formatted.listIterator(); i.hasNext();) {
sb.append(i.next());
if (i.previousIndex() % 3 == 0) {
sb.append("\n");
}
}
System.out.println("output: " + sb);
Вывод:
output: string1
string2 string3 string4
string5
Примечание: рассмотрите возможность использования System.getProperty ("line.separator") вместо "\ n".