- Java 中数组的四种拷贝
- 第一种 for循环拷贝
- 第二种方案:
- 第三种方案:
- 第四种方案
- 最后:
- 每博一文案
第一种 for循环拷贝
- 就是通过遍历每个数值,再赋值
public class Study05 {
// 第一种拷贝方案
public static void copy (int[] arr,int[] ret ) {
for (int i = 0; i < arr.length; i++) {
ret[i] = arr[i];
}
}
public static void main15 (String[] args) {
Study05 copy1 = new Study05();
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
int[] ret = new int[arr.length];
Study05.copy(arr,ret);
for (int num:ret) {
System.out.print(num+"t");
}
}
}
第二种方案:
- 通过包 Arrays.copyof 的使用:(第一个参数是:你所需拷贝的数组名,第二个参数是对应的拷贝数组的长度)
import java.util.Arrays;
public class Study05 {
// 方案二 运用Arrays.copyOf的包使用
public static void main17 (String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
int[] ret = new int[arr.length];
ret = Arrays.copyOf(arr,arr.length); // Arrays.copyOf(源数组,拷贝的数组的长度);
System.out.println(Arrays.toString(arr)); // 数组以字符串的形式,打印数组,对应的包 import java.util.Arrays;
System.out.println(Arrays.toString(ret));
}
}
第三种方案:
- 运用包 System.arraycopy 的实现拷贝的效果,
- System.arraycopy( 源数组,开始拷贝的位置,目的数组,拷贝到的位置,拷贝的长度 )
public class Study05{
运用 包:System.arraycopy(); 方案三
public static void main18 (String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
int[] ret = new int[arr.length];
System.arraycopy(arr,0,ret,0,arr.length);
// System.arraycopy(源数组,开始拷贝的位置,目的数组,拷贝到的位置,拷贝的长度)
System.out.println(Arrays.toString(ret));
}
}
第四种方案
- 运行包 clone() 实现拷贝的功能;
public class Study05 {
// 方案四:clone()
public static void main19 (String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
int[] ret = arr.clone(); // clone 产生一个副本,这个方法是object 的克隆方法,object:是所有类的父类,祖先
System.out.println(Arrays.toString(ret));
}
}
最后: 每博一文案
面对弱者的时候,一个人的人品如何从他面对弱者的态度,就能看清有些人在人前风风光光?
多与同级上级毕恭毕敬,但在人后却对着乞讨的人大声呵斥,得衣衫褴褛的拾荒者面露鄙夷。
可以想象,这样的人与你交往,只是为了从中获利,不会同情别人,更无感恩之心。
—————— 一禅心灵庙语
限于自身的水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见!



