Есть ли эффективный способ построить строку, используя только Character[]
?
Нет. Нет конструкторов, которые могут это сделать.
Наиболее эффективный подход, вероятно, будет преобразовывать его в char[]
, как вы сами предложили:
char[] chars = new char[characters.length];
for (int i = characters.length - 1; i >= 0; i--) {
chars[i] = characters[i];
}
String s = String.valueOf(chars);
Помните, что «эффективный» не означает «в одной строке». Решение на основе потока будет менее эффективным, поскольку оно создаст (и, в конечном итоге, соберет мусор) строку для каждого персонажа.