从零开始学“Java”(十七)
一、数组的复制(常用的两种方法)
- System.arraycopy()
- Arrays.copyOf()
二、System.arraycopy()
这个方法是Java基于C语言实现的数组复制的方法。
(1)特点
- 相对于其他方式此方法效率更高。
- 适用于两个数组之间进行复制。
(2)示例:
package cn.tudu.util;
public class ArrayCopy {
public static void main(String[] args) {
int[] src = {1,1,0,1,1,1,1,1,1,1};
int[] dest = {1,1,1,1,1,1,1,1,1,1};
for (int i = 0; i < src.length; i++) {
System.out.print(src[i]+" ");
}
System.out.println();
for (int i = 0; i < dest.length; i++) {
System.out.print(dest[i]+" ");
}
System.out.println();
System.arraycopy(src, 0, dest, 0, 5);
for (int i = 0; i < dest.length; i++) {
System.out.print(dest[i]+" ");
}
//System.arraycopy(src, srcPos, dest, destPos, length);
//src-源数组,srcPos-源数组中的起始位置,dest-目标数组,destPos-目标数组中的起始位,length-要复制的数组元素的数量。
}
}
结果如下:
三、Arrays.copyOf()
是java.util.Arrays类中的一个方法。
(1)特点
- 生成的新数组是原始数组的副本。
- 新数组的长度小于源数组,则进行截取,后边超出长度部分舍弃(实现缩容)。
- 新数组的长度大于源数组,则进行扩容,扩容部分用0或null填充(实现扩容)。
- 产生的新数组可以大于源数组的长度。
(2)示例:
int[] src = {1,1,1,1,1,1,1,1,1,1};
int[] arr = Arrays.copyOf(src, 12);
for (int i = 0; i < src.length; i++) {
System.out.print(src[i]+" ");
}
System.out.println();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
结果如下:
此文章适合零基础学编程的小伙伴,感谢各位阅读!