始める無料で始める

メモリ効率の高い文字列処理の実装

同じ文字列値で配列を事前に埋めるテキスト処理アプリケーションを開発しています。現状の実装では、各ループ反復ごとに新しい 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 ____;
    }
}
コードを編集して実行