開始使用免費開始

實作省記憶體的字串處理

你正在開發一個文字處理應用,需要在陣列中預先填入多次相同的字串值。現有的實作在每次迴圈中都會建立一個新的 String 物件,對大型陣列來說效率不佳。你的任務是實作一個更有效率的版本。

本練習屬於課程

Java 程式碼最佳化

檢視課程

練習說明

  • 重複使用提供的 value 加入清單。
  • 回傳最終的 array

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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 ____;
    }
}
編輯並執行程式碼