Рубрики
Без рубрики

Объединение строк в JAVA

Допустим, у вас есть 1000 чисел, и вы хотите объединить их все в строку. Наивный подход заключается в использовании оператора объединения (+)……..

Автор оригинала: MEHUL JAIN.

Допустим, у вас есть 1000 чисел, и вы хотите объединить их все в строку. Наивный подход заключается в использовании оператора объединения (+).

public class StringConcatenate {

  public static void main(String[] args) 
  {
    int n = 1000;
    String result = "";
    
    for(int i=0;i

Но это не лучший подход для объединения чисел. Строки неизменяемы в JAVA , что означает, что каждый раз, когда мы используем оператор ” + ” для объединения числа в результат, создается новый строковый объект.’ i’ сначала автоматически преобразуется JAVA в строку. Затем выполняется новое выделение памяти для хранения объединения “результат” и ” я ” (отбрасывание предыдущего места для результата). Следовательно, создается много временного мусора в памяти кучи. Выделение памяти для каждой итерации делает программу очень медленной и может в конечном итоге поглотить всю вашу память кучи для большего n. Чтобы предотвратить эту ситуацию, JAVA имеет два класса StringBuffer и Строковый конструктор .

StringBuffer Против StringBuilder

StringBuffer и StringBuilder являются изменяемыми в JAVA. Таким образом, мы можем изменить любой из них, не создавая новый объект. Следовательно, это ускоряет работу программы и экономит много места. Разница между StringBuffer и StringBuilder это StringBuffer потокобезопасен, в то время как StringBuilder не является потокобезопасным. Поэтому StringBuilder работает быстрее. StringBuffer следует использовать только в том случае, если у нас есть общее буферное пространство между потоками, в противном случае Следует использовать StringBuilder .

public class StringConcatenate 
{
  public static void main(String[] args) 
  {
    int n = 1000;
    /*
    * Using StringBuffer in JAVA
    */
    String result_buffer = "";
    StringBuilder sbuffer = new StringBuilder();
    for(int i=0;i

Производительность: Струнный буфер Против “+”

public class StringConcatenate {

  public static void main(String[] args) 
  {
    int n = 10000;
    String result_op = "";
    long t1 = System.currentTimeMillis();
    for(int i=0;i

ЗАПИСКА

Следует отметить, что если существует один оператор, содержащий несколько операторов ” + ” для объединения строк, то JAVA автоматически использует StringBuffer/StringBuilder. Например:

public class StringConcatenate {

  public static void main(String[] args) 
  {
    String t = "Hello!" + " This" + " is" + " my" + " first" + " post.";
    System.out.println(t);
  }
}
/*
Output
Hello! This is my first post.
*/

Здесь StringBuilder будет использоваться JAVA. Таким образом, новый объект не будет создан.

Оригинал: “https://www.codementor.io/@mehuljain/string-concatenation-in-java-7m55jun7h”