我是靠谱客的博主 老迟到大叔,最近开发中收集的这篇文章主要介绍java复制数组函数_java复制数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.1for循环

package ztext;

import java.util.Arrays;

/**

* @author xgj

*/

public class MyTest {

public static void main(String[] args) {

int[] oldArray = new int[]{1,2,3,4,5,6};

int[] newArray = new int[oldArray.length];

for(int index = 0 ; index < oldArray.length ; ++index){

newArray[index] = oldArray[index];

}

System.out.println(Arrays.toString(oldArray));

System.out.println(Arrays.toString(newArray));

}

}

属于深复制,但是效率最低。

1.2System.arraycopy函数

package ztext;

import java.util.Arrays;

/**

* @author xgj

*/

public class MyTest {

public static void main(String[] args) {

int[] oldArray = new int[]{1,2,3,4,5,6};

int[] newArray = new int[oldArray.length];

System.arraycopy(oldArray ,0,newArray,0,oldArray.length);

System.out.println(Arrays.toString(oldArray));

System.out.println(Arrays.toString(newArray));

}

}

效率最高,如果复制的是一维的(int,double)这些基本类型的数组,则发生的是值传递,但是像是二维数组,修改原数组或者新数组会影响另一个的值,java中其实没有二维数组的概念,二维数组只是一个一维数组存放着一堆一维数组的引用。

1.3Arrays.copyof

package ztext;

import java.util.Arrays;

/**

* @author xgj

*/

public class MyTest {

public static void main(String[] args) {

Integer[] oldArray = new Integer[]{1,2,3,4,5,6};

Integer[] newArray = Arrays.copyOf(oldArray,oldArray.length);

System.out.println(Arrays.toString(oldArray));

System.out.println(Arrays.toString(newArray));

}

}

和System.arraycopy的区别在于会创建一个新的数组,其实底层也是由System.arraycopy实现的,多了一个创建数组的过程。效率稍微比System.arraycopy慢点。

1.4clone()方法

java.lang.Object类的clone()方法为protected类型,不可直接调用,需要先对要克隆的类进行下列操作: 首先被克隆的类实现Cloneable接口;然后在该类中覆盖clone()方法,并且在该clone()方法中调用super.clone();这样,super.clone()便可以调用java.lang.Object类的clone()方法。 (java自带类直接使用)

package ztext;

import java.util.Arrays;

/**

* @author xgj

*/

public class MyTest {

public static void main(String[] args) {

Integer[] oldArray = new Integer[]{1,2,3,4,5,6};

Integer[] newArray = oldArray.clone();

System.out.println(Arrays.toString(oldArray));

System.out.println(Arrays.toString(newArray));

}

}

继承自java.lang.Object类的clone()方法是浅复制, 在编写程序时要注意这个细节。可以自己覆盖该方法实现深复制。

最后

以上就是老迟到大叔为你收集整理的java复制数组函数_java复制数组的全部内容,希望文章能够帮你解决java复制数组函数_java复制数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部