Ответ 1
Используйте класс StringBuilder
. Это более эффективно в том, что вы пытаетесь сделать.
Я написал программу Java, в которой мне нужно добавить строку
" u13a2"
к существующему "u1234 u12de u1386 ... u15a3"
.
Таким образом, строка становится длиннее и длиннее. Я обнаружил, что время, затрачиваемое на каждое добавление, также увеличивается дольше. Есть ли способ улучшить это до некоторой степени?
Реализация пришла мне в голову:
unicodeArray += " "+unicode;
или
unicodeArray = unicodeArray.concat(" "+unicode);
Они дали аналогичную производительность. Я думаю, что основной причиной, вызывающей эту плохую производительность, является особый тип String
. Он создает новый объект для каждого присваивания. Если вы так думаете, значит ли это, что лучше использовать другой тип, например массив байтов?
Используйте класс StringBuilder
. Это более эффективно в том, что вы пытаетесь сделать.
Вы должны использовать класс StringBuilder.
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Some text");
stringBuilder.append("Some text");
stringBuilder.append("Some text");
String finalString = stringBuilder.toString();
Кроме того, пожалуйста, посетите:
Для этого вы можете использовать StringBuffer
или StringBuilder
. Оба они предназначены для динамической обработки строк. StringBuffer
является потокобезопасным, где StringBuilder
не является.
Используйте StringBuffer
в многопоточной среде. Но если это однопоточная StringBuilder
, и она намного быстрее, чем StringBuffer
.
java.lang.StringBuilder. Используйте конструктор int для создания начального размера.
- Каждый раз, когда вы добавляете или выполняете какие-либо изменения с ним, он создает новый объект String
.
StringBuilder
.), это будет эффективный способ сделать это.