日期:2014-05-20  浏览次数:20831 次

拷贝数组问题
public static void main(String [] args){
  Object [] str1=new Object[5];
  str1[0]=new String ("a");
  str1[1]=new String ("b");
  str1[2]=new String ("c");
  str1[3]=new String ("d");
  str1[4]=new String ("e");
   
  Object [] str2=new Object[3];
  str2[0]=new Integer(5);
  str2[1]=new Integer(1);
  str2[2]=new Integer(2);
  Object [] str3=new Object[str1.length+str2.length];
  System.arraycopy(str1, 2, str3, 2, 3);
  System.arraycopy(str2,0,str3,0,2);
  System.out.println(str3);
  }

最后的输出:[Ljava.lang.Object;@497934
为什么无法拷贝到str3中呢?

------解决方案--------------------
你的数组赋值方法是正确的,错误的是输出方法,不能企图直接用System.out.println()输出一个数组的所有成员
Object [] str1=new Object[5];
str1[0]=new String ("a");
str1[1]=new String ("b");
str1[2]=new String ("c");
str1[3]=new String ("d");
str1[4]=new String ("e");

Object [] str2=new Object[3];
str2[0]=new Integer(5);
str2[1]=new Integer(1);
str2[2]=new Integer(2);
Object [] str3=new Object[str1.length+str2.length];
System.arraycopy(str1, 2, str3, 2, 3);
System.arraycopy(str2,0,str3,0,2);
for(Object i: str3) //这是JAVA里新的for语句
System.out.println(i); //把输出换成这样就可以了
------解决方案--------------------
你想输出的话:
Java code

  for(int i=0;i<str3.length;++i)
              System.out.println(str3[i]);
          }

------解决方案--------------------
不是无法拷贝。。。对象的输出就这样

换一个输出方式呗

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