Implementare un'elaborazione di stringhe efficiente in memoria
Stai sviluppando un'applicazione di elaborazione del testo che deve pre-popolare un array con lo stesso valore di stringa più volte. L'implementazione attuale crea un nuovo oggetto String a ogni iterazione del ciclo, il che è inefficiente per array di grandi dimensioni. Il tuo compito è implementare una versione più efficiente di questo metodo.
Questo esercizio fa parte del corso
Ottimizzazione del codice in Java
Istruzioni dell'esercizio
- Riutilizza il
valuefornito per aggiungerlo alla lista. - Restituisci l'
arrayfinale.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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 ____;
}
}