ComenzarEmpieza gratis

Implementar un procesamiento de strings eficiente en memoria

Estás desarrollando una aplicación de procesamiento de texto que necesita pre-rellenar un array con el mismo valor de string varias veces. La implementación actual crea un nuevo objeto String en cada iteración del bucle, lo cual es ineficiente para arrays grandes. Tu tarea es implementar una versión más eficiente de este método.

Este ejercicio forma parte del curso

Optimizing Code in Java

Ver curso

Instrucciones del ejercicio

  • Reutiliza el value proporcionado para añadirlo a la lista.
  • Devuelve el array final.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

public class ArrayPopulation {
    
    public static void main(String[] args) {
        int size = 10000;

        String[] inefficientArray = populateArrayInefficient(size, "DataCamp");
        String[] efficientArray = populateArrayEfficient(size, "DataCamp");

        System.out.println("Arrays have same length: " + (inefficientArray.length == efficientArray.length));
    }

    public static String[] populateArrayInefficient(int size, String value) {
        String[] array = new String[size];
        
        for (int i = 0; i < size; i++) {
            String stringValue = new String(value);
            array[i] = stringValue;
        }
        
        return array;
    }

    public static String[] populateArrayEfficient(int size, String value) {
        String[] array = new String[size];
        
        for (int i = 0; i < size; i++) {
            // Reuse the same String object
            array[____] = ____
        }
        
        // Return the final array
        return ____;
    }
}
Editar y ejecutar código