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
Instrucciones del ejercicio
- Reutiliza el
valueproporcionado para añadirlo a la lista. - Devuelve el
arrayfinal.
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 ____;
}
}