Aan de slagGa gratis aan de slag

Geheugenefficiënte stringverwerking implementeren

Je ontwikkelt een tekstverwerkingsapplicatie die een array vooraf moet vullen met meerdere keren dezelfde stringwaarde. De huidige implementatie maakt in elke lusiteratie een nieuw String-object aan, wat inefficiënt is voor grote arrays. Jij gaat een efficiëntere versie van deze methode implementeren.

Deze oefening maakt deel uit van de cursus

Code optimaliseren in Java

Cursus bekijken

Oefeninstructies

  • Hergebruik de meegegeven value om toe te voegen aan de lijst.
  • Retourneer de uiteindelijke array.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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 ____;
    }
}
Code bewerken en uitvoeren