Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

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

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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