Implementarea procesării eficiente a șirurilor de caractere din punct de vedere al memoriei
Dezvolți o aplicație de procesare a textului care trebuie să pre-populeze un array cu aceeași valoare de tip String de mai multe ori. Implementarea actuală creează un nou obiect String la fiecare iterație a buclei, ceea ce este ineficient pentru array-uri mari. Sarcina ta este să implementezi o versiune mai eficientă a acestei metode.
Acest exercițiu face parte din cursul
Optimizarea codului în Java
Instrucțiuni pentru exercițiu
- Reutilizează
valuefurnizat pentru a-l adăuga în listă. - Returnează
array-ul final.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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 ____;
}
}