开始使用免费开始使用

实现内存高效的字符串处理

您正在开发一个文本处理应用,需要在数组中预填充同一个字符串多次。当前实现会在每次循环迭代中创建一个新的 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 ____;
    }
}
编辑并运行代码