¿Cómo optimizar la concatenación de strings en Java?

Las strings se definen como una array de caracteres. La diferencia entre una array de caracteres y una string es que la string termina con un carácter especial ‘\0’. Dado que las arrays son inmutables (no pueden crecer), las strings también son inmutables. Cada vez que se realiza un cambio en una String, se crea una String completamente nueva.

La concatenación es el proceso de unión de extremo a extremo. Tomemos un ejemplo para entender qué significa concatenación en inglés.

Person 1 speaking to Person 2 - ItsCodingEra
Person 2 speaking to Person 1 - 2020India


Now, let us carry a process whose output is as follows- ItsCodingEra2020India

This process is called concatenation.

Ejemplo:

Input String = "Geeks" + "for" + "Geeks";
OutputString = "GeeksforGeeks" ;

Existen numerosas formas en las que podemos decirle a las computadoras que lo hagan, que se denominan métodos. Describamos cómo una computadora puede realizar una acción a través de nuestros métodos de diferentes maneras.

Esta acción puede tener lugar a través de 4 métodos :

  • Usando el operador ‘+’
  • Usando el método concat() i nbuilt
  • Usando StringBuilder
  • Usando StringBuffer

Vamos a describirlos e implementarlos uno por uno.

Método 1: Concatenación de strings usando el operador ‘+’ 

Java

// Java program to concatenate string
import java.lang.*;
  
class GFG {
  
    public static void main(String[] args)
    {
        String str = "";
  
        // timer-start time
        long startTime = System.currentTimeMillis();
  
        for (int i = 0; i < 100000; i++) {
            // string concatenation
            str += Integer.toString(0);
        }
  
        // timer-end time
        long endTime = System.currentTimeMillis();
  
        // display the result
        System.out.println(
            "Time taken to concatenate 100000 Strings using '+' operator : "
            + (endTime - startTime) + " ms");
    }
}
Producción

Time taken to concatenate 100000 Strings using '+' operator : 2126 ms

 

Método 2: usando la función incorporada concat()

El método Concat(String str) concatena la string especificada al final de esta string. Este método agrega la string especificada al final de la string dada y devuelve la string combinada.

Ejemplo :

String str="GeeksforGeeks";
s1 = s1.concat(".").concat("com");

Java

// Java program to concatenate string
import java.lang.*;
  
class GFG {
    public static void main(String[] args)
    {
        String str = "";
        long startTime = System.currentTimeMillis();
  
        for (int i = 0; i < 100000; i++) {
            str.concat(Integer.toString(0));
        }
  
        long endTime = System.currentTimeMillis();
        System.out.println(
            "Time taken to concatenate 100000 Strings using concat() method : "
            + (endTime - startTime) + " ms");
    }
}
Producción

Time taken to concatenate 100000 Strings using concat() method : 46 ms

 

Método 3: mediante el uso de StringBuilder (Best Way)

StringBuilder representa una secuencia mutable de caracteres. Dado que String Class en Java crea una secuencia inmutable de caracteres, la clase StringBuilder proporciona una alternativa a String Class, ya que crea una secuencia mutable de caracteres.

Ejemplo :

StringBuilder str  = new StringBuilder();  
str.append("GFG");

Complejidad de tiempo para la concatenación usando el método StringBuilder:

Java

// Java program to concatenate string
import java.lang.*;
  
class GFG {
    public static void main(String[] args)
    {
        StringBuilder str = new StringBuilder();
        long startTime = System.currentTimeMillis();
  
        for (int i = 0; i < 100000; i++) {
            str.append(0);
        }
        long endTime = System.currentTimeMillis();
        System.out.println(
            "Time taken to concatenate 100000 Strings using StringBuilder append : "
            + (endTime - startTime) + " ms");
    }
}
Producción

Time taken to concatenate 100000 Strings using StringBuilder append : 34 ms

Método 4: mediante el uso de StringBuffer

StringBuffer es una clase par de String que proporciona gran parte de la funcionalidad de las strings. La string representa secuencias de caracteres inmutables de longitud fija, mientras que StringBuffer representa secuencias de caracteres modificables y modificables.

Ejemplo :

StringBuffer s = new StringBuffer("GeeksforGeeks");

Java

// Java program to concatenate string
import java.lang.*;
  
class GFG {
    public static void main(String[] args)
    {
        StringBuffer str = new StringBuffer();
        long startTime = System.currentTimeMillis();
  
        for (int i = 0; i < 100000; i++) {
            str.append(0);
        }
  
        long endTime = System.currentTimeMillis();
  
        System.out.println(
            "Time taken to concatenate 100000 Strings using StringBuffer append : "
            + (endTime - startTime) + " ms");
    }
}
Producción

Time taken to concatenate 100000 Strings using StringBuffer append : 41 ms

Publicación traducida automáticamente

Artículo escrito por abhishekr0ut y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *