CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Réutilisez la variable value fournie pour l'ajouter à la liste.
  • Retournez le array final.

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 ____;
    }
}
Modifier et exécuter le code