更高效地创建新阵列或重置阵列

Geo*_*ton 1 java

我有一个包含6个元素的数组.将这些元素设置为null或创建新数组是否更有效(按时间)?我将使用这个数组数百次.

pet*_*rov 5

我会用这种方法.

System.arraycopy

它原生而且效率很高.

每当我想重置数组时,我会保留一个空数组并使用此方法将其复制到我的数组中.所以我的建议不是每次都创建一个新数组,而是不循环(使用Java代码)并将元素设置为null.只需使用Java提供的本机方法即可.

import java.util.Arrays;


public class Test056 {

    public static void main(String[] args) {

        String[] arrNull = new String[10000];
        String[] arrString = new String[10000];

        long t1 = System.nanoTime();

        for (int i=0; i<10000; i++){
            System.arraycopy(arrNull, 0, arrString, 0, arrNull.length);
        }

        long t2 = System.nanoTime();

        System.out.println(t2 - t1);

        long t3 = System.nanoTime();

        for (int i=0; i<10000; i++){
            Arrays.fill(arrString, null);
        }

        long t4 = System.nanoTime();

        System.out.println(t4 - t3);
    }

}
Run Code Online (Sandbox Code Playgroud)