本帖最后由 怀念黑海岸 于 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
}
}
}
这两种方法适用于操作任何数据类型的数组。
|