Java中数组复制的几种方法
1 /** 2 * @author zhengbinMac 3 */ 4 public class Test { 5 public static void main(String[] args) { 6 int[] array1 = {1,2,3,4,5}; 7 // 1.通过for循环 8 int[] array2 = new int[5]; 9 for(int i = 0;i < array1.length;i++) { 10 array2[i] = array1[i]; 11 } 12 for(int i = 0;i < array2.length;i++) { 13 System.out.print(array2[i]); 14 } 15 System.out.println(); 16 //2.通过System.arraycopy() 17 int[] array3 = new int[5]; 18 System.arraycopy(array1, 0, array3, 0, 5); 19 for (int i = 0; i < array3.length; i++) { 20 System.out.print(array3[i]); 21 } 22 System.out.println(); 23 //3.通过Arrays.copyOf() 24 int[] array4 = new int[5]; 25 array4 = Arrays.copyOf(array1, 5); 26 for (int i = 0; i < array4.length; i++) { 27 System.out.print(array4[i]); 28 } 29 System.out.println(); 30 //4.通过Object.clone() 31 int[] array5 = new int[5]; 32 array5 = array4.clone(); 33 for (int i = 0; i < array5.length; i++) { 34 System.out.print(array5[i]); 35 } 36 } 37 }
1.for循环方法:
代码灵活,但效率低。
2.System.arraycopy()方法:
通过源码可以看到,其为native方法,即原生态方法。自然效率更高。
1 public static native void arraycopy(Object src, int srcPos, 2 Object dest, int destPos, 3 int length);
3.Arrays.copyOf()方法:
同样看源码,它的实现还是基于System.arraycopy(),所以效率自然低于System.arraycpoy()。
1 public static int[] copyOf(int[] original, int newLength) { 2 int[] copy = new int[newLength]; 3 System.arraycopy(original, 0, copy, 0, 4 Math.min(original.length, newLength)); 5 return copy; 6 }
4.Object.clone()方法:
从源码来看同样也是native方法,但返回为Object类型,所以赋值时将发生强转,所以效率不如之前两种。
1 protected native Object clone() throws CloneNotSupportedException;
梦想要一步步来!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架