黑马程序员技术交流社区
标题:
如何把任意数组中的数据复制到另一个数组中
[打印本页]
作者:
周靖轩
时间:
2014-8-17 21:21
标题:
如何把任意数组中的数据复制到另一个数组中
如何把任意数组中的数据复制到另一个数组中。。。求解
作者:
华谦
时间:
2014-8-17 21:38
直接用“=”貌似可以的
作者:
姜佳文
时间:
2014-8-17 22:24
定义一个新数组,长度和就数组一样,直接赋值号=就行了
作者:
huangxuanheng
时间:
2014-8-17 23:33
public class ArrayDemo{
public static void main(String args[]){
int[]a={5,6,78,32};//定义数组
int[]b=a; //把数组a的值赋给数组b,即复制
}
}
复制代码
作者:
裤裆里的温柔、
时间:
2014-8-18 01:19
有封装好的方法哦,System.copyArray()
作者:
范靖明
时间:
2014-8-18 01:29
数组拷贝
作者:
cs8630323
时间:
2014-8-18 02:31
本帖最后由 cs8630323 于 2014-8-18 02:43 编辑
姜佳文 发表于 2014-8-17 22:24
定义一个新数组,长度和就数组一样,直接赋值号=就行了
你这样是不行的,会让两个指引指向同一个数组。可以用Arrays.copyOf(type[]a,int b)
作者:
Huberry
时间:
2014-8-18 02:48
String类中有方法,直接调用
作者:
谢建平
时间:
2014-8-18 05:21
int [] a={5,6,78,32};
int[] b=new int[a.length];
for(int i=0;i<a.length;i++){
b[i]=a[i];
}
这样应该也行
作者:
酋长第一
时间:
2014-8-18 12:38
新定义一个数组,长度等于原数组,然后把原数组赋值给新数组
作者:
kakasa
时间:
2014-8-18 14:47
新数组=Arrays.copyOf(旧数组,旧数组.length)
作者:
怀念黑海岸
时间:
2014-8-18 19:13
本帖最后由 怀念黑海岸 于 2014-8-18 19:18 编辑
四楼说的不错,可以直接使用System中的arrayCopy方法,这个方法能操作一切类型的数组。而且对于楼主所提出的问题看来比较有歧义,不知道你是通过复制后就是否需要保持原有数组本身中的元素。 如果不需要的话那么就可以直接用2楼的办法了,如果你需要保持原有数组中的元素的话那么建议使用四楼的方法,也可以直接使用Object类中的clone方法,但是你必须将使用这个方法的类实现Cloneable接口(这是一个标记接口,和Serializable接口一样),
然后获取这个数组的一个范本就行了,你操作这个范本时是不会改变原有数组的元素内容的:如下面的代码:
public class ShallowClone implements Cloneable{
public static String [] cloneString(String []str){
String []strClone =null;
strClone=str.clone();
return strClone;
}
public static void main(String[] args) {
String []str =new String[]{"avx","sad","dsf","sad","dfg",};
String []strNew =cloneString(str);
/*String []strNew =new String[str.length]; //这是四楼说的用arrayCopy方法复制也能达到目的
System.arraycopy(str, 0, strNew, 0, str.length);*/
strNew[4]="AAAA"; //操作范本中的元素是不会改变原有数组中的内容的。
for(String each:str){
System.out.print(each+" ");//结果 avx sad dsf sad dfg
}
System.out.println();
for(String each:strNew){
System.out.print(each+" "); //结果 avx sad dsf sad AAA
}
}
}
这两种方法适用于操作任何数据类型的数组。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2