「java二维数组的拷贝」java 二维数组复制

博主:adminadmin 2022-11-28 09:52:06 48

今天给各位分享java二维数组的拷贝的知识,其中也会对java 二维数组复制进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java函数形式实现二维数组拷贝

copyArray(a){

int[][] b;

for(int i=0 ;ia.length;i++){

for(int j=0;ja[i].length;j++){

b[i][j]=a[i][j];

}

}

return b;

}

你的第二个问题我没看很明白,不知道你在说什么。

JAVA二维数组如何使用arraycopy?

arraycopy

public static void arraycopy(Object src,

int srcPos,

Object dest,

int destPos,

int length)

src - 源数组。

srcPos - 源数组中的起始位置。

dest - 目标数组。

destPos - 目标数据中的起始位置。

length - 要复制的数组元素的数量。

只能复制一维数组

java二维数组的复制

package Test;

public class TestArray {

public static void main(String[] args) {

String[][] arrString = {{"1", "2", "3"}, {"4", "5"}, {"6"}, {"7", "8", "9", "10"}};

System.out.println("original array:");

String[][] copyTo = new String[arrString.length][];

for (int i = 0; i arrString.length; i++) {

String[] arrRow = new String[arrString[i].length];

for (int j = 0; j arrString[i].length; j++) {

System.out.print(arrString[i][j] + " ");

arrRow[j] = arrString[i][j];

}

copyTo[i] = arrRow;

System.out.println();

}

System.out.println("copy result array:");

for (int i = 0; i copyTo.length; i++) {

for (int j = 0; j copyTo[i].length; j++) {

System.out.print(copyTo[i][j] + " ");

}

System.out.println();

}

}

}

运行结果:

original array:

1 2 3

4 5

6

7 8 9 10

copy target array:

1 2 3

4 5

6

7 8 9 10

java中二维数组怎么复制

/** * @Title: ArrayCopy.java * @Package com.dusd.coding * @Description: TODO * @author Administrator * @date 2015-6-29 上午9:26:11 * @version V1.0 */package com.dusd.coding; /** * @ClassName: ArrayCopy * @Description: TODO * @author Administrator * @date 2015-6-29 上午9:26:11 * 备注: */public class ArrayCopy { /** * @Title: main * @Description: TODO * @author dusd * @date 2015-6-29 上午9:26:12 * @param args * @throws */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayCopy arrayCopy = new ArrayCopy(); String[][] strArray=new String[][]{ {"a","b","c"}, {"A","B","C","D"}, {"1","2"} }; String[][] copyArray = arrayCopy.copyArray2(strArray); ArrayCopy.printArray(copyArray); } //打印数组 public static void printArray(String[][] array){ for(int i=0;iarray.length;i++){ for(int j=0;jarray[i].length;j++){ System.out.print(array[i][j]+" "); } System.out.println(); } } //使用循环语句遍历复制 public String[][] copyArray1(String[][] array){ String[][] copyArray=new String[array.length][]; for(int i=0;iarray.length;i++){ copyArray[i]=new String[array[i].length]; for(int j=0;jarray[i].length;j++){ copyArray[i][j]=array[i][j]; } } return copyArray; } //使用java.lang.System.arraycopy()方法复制(推荐使用) public String[][] copyArray2(String[][] array){ String[][] copyArray=new String[array.length][]; for(int i=0;iarray.length;i++){ copyArray[i]=new String[array[i].length]; System.arraycopy(array[i], 0, array[i], 0, copyArray[i].length); } return array; }}

请问java中深度copy一个二维数组是什么意思?怎么用代码实现?

一个二维数组可以看成一个一维数组,每个元素存储一个一维数组首地址的引用,这个没问题吧!

也就是说对于a[][],直接用b[][]=a,或者b[][]=a.clone() 都只是复制了一个引用(包括上面的arraycopy等方法),无法保证数据独立性,就是说a数组值改变会影响到b,反之亦然,这就是浅层复制。

如果二维数组存放类型为基本类型,则只需要b的每一行进行复制(Object.clone()可以保证对基本类型做深层复制api上有写):

b[][]=a.clone();//先利用浅层复制分配新的引用存放地址

for(int i=0;ia.length;i++){

b[i]=a[i].clone();//a[i]指向数组的内容为基本类型,可以深层复制生成新引用对象

}

如果二维数组表示的是引用类型,则要对每一个元素调用clone(),并且保证所表示的引用类型遵循clone()复写原则。

b[][]=a.clone();//先利用浅层复制分配新的引用存放地址

for(int i=0;ia.length;i++){

for(int j=0;ja[0].length;j++){

b[i][j]=a[i][j].clone()//为每个元素进行深层复制

}

}

以上是规范写法,实现方法有很多,但一定要记住,单纯的对引用的COPY是没有意义的,编程中要避免。

关于java二维数组的拷贝和java 二维数组复制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。