Zacznij terazZacznij za darmo

Implementacja wydajnego pamięciowo przetwarzania ciągów znaków

Tworzysz aplikację do przetwarzania tekstu, która musi wstępnie wypełnić tablicę tą samą wartością tekstową wielokrotnie. Obecna implementacja tworzy nowy obiekt String w każdej iteracji pętli, co jest nieefektywne w przypadku dużych tablic. Twoim zadaniem jest zaimplementowanie bardziej wydajnej wersji tej metody.

To ćwiczenie jest częścią kursu

Optymalizacja kodu w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj dostarczonego value, aby dodać je do listy.
  • Zwróć końcową tablicę array.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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 ____;
    }
}
Edytuj i uruchom kod