Mettre en œuvre un traitement de chaînes économe en mémoire
Vous développez une application de traitement de texte qui doit préremplir un tableau avec la même valeur de chaîne à plusieurs reprises. L'implémentation actuelle crée un nouvel objet String à chaque itération de la boucle, ce qui n'est pas efficace pour les grands tableaux. Votre tâche consiste à proposer une version plus performante de cette méthode.
Cette activité fait partie du cours
Optimiser le code en Java
Instructions de l’exercice
- Réutilisez la variable
valuefournie pour l'ajouter à la liste. - Retournez le
arrayfinal.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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 ____;
}
}