复制数组

System.arraycopy详解

て烟熏妆下的殇ゞ 提交于 2020-01-07 15:00:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 说道数组的复制,最常用的应该就是弄个循环挨个赋值,或是直接clone了。但其实还有System.arraycopy这样的方法,并且速度更快。 多说无用,直接代码测试一下~ int size = 10000; int[] res = new int[size]; int[] to = new int[size]; long t = System.nanoTime(); for (int i = 0; i < size; i++) { to[i] = res[i]; } t = System.nanoTime()-t; System.out.println("for:"+t); t = System.nanoTime(); to = res.clone(); t = System.nanoTime()-t; System.out.println("clone:"+t); t = System.nanoTime(); System.arraycopy(res, 0, to, 0, size); t = System.nanoTime()-t; System.out.println("sys copy:"+t); 输出结果: for:147630 clone:30789 sys copy:7894 结论: System