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 fois. L’implémentation actuelle crée un nouvel objet String à chaque itération de boucle, ce qui est inefficace pour les grands tableaux. Votre mission est d’implémenter une version plus efficace de cette méthode.
Cet exercice fait partie du cours
Optimiser son code en Java
Instructions
- Réutilisez la valeur
valuefournie pour l’ajouter à la liste. - Renvoyez le
arrayfinal.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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 ____;
}
}