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