IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Riutilizza il value fornito per aggiungerlo alla lista.
  • Restituisci l'array finale.

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 ____;
    }
}
Modifica ed esegui il codice