如何将一些对象数组复制到另一个对象数组

时间:2013-02-26 18:35:55

标签: java arrays eclipse

如何将一些对象数组复制到另一个对象数组

我有一个这样的课程

class sd{
    String a="";
    String b="";
    String c="";
    String d="";
    int lenph=12;
    boolean s=false; 
}

和两个像这样的数组

sd[] stexp=new sd[12];
sd[] st=new sd[3];

我想将3个stexp复制到st我该怎么做?

我这样做但不起作用

 sd[] stexp=new sd[12];
   for(int c=0;c<stexp[0].lenph;c++){
        stexp[c]=new sd();
}

   sd[] st=new sd[3];
   for(int c=0;c<3;c++){
        st[c]=new sd();
}

   for(int i=0;i<12;i++){
       stexp[i].a="f"+i;
       stexp[i].b="f"+i;
       stexp[i].c="f"+i;
       stexp[i].d="f"+i;
   }


   for(int i=0;i<3;i++){
       st[i].a=stexp[i].a;
       st[i].b=stexp[i].b;
       st[i].c=stexp[i].c;
       st[i].d=stexp[i].d;

   }
       b+=st[0].a+"\n";
       b+=st[0].b+"\n";
       b+=st[0].c+"\n";
       b+=st[0].d+"\n";
sho.setText("b="+b);

感谢您的帮助。 :)

我改变了错误的代码。

我想将一个对象数组复制到另一个对象数组,我想用

 System.arraycopy(stexp, 0,st , 0, 1);

但是当我在eclipse中运行代码时它无法正常工作。

2 个答案:

答案 0 :(得分:1)

check this example.use arraycopy
class ArrayCopyDemo {
    public static void main(String[] args) {
        char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
                'i', 'n', 'a', 't', 'e', 'd' };
        char[] copyTo = new char[7];

        System.arraycopy(copyFrom, 2, copyTo, 0, 7);
        System.out.println(new String(copyTo));
    }
}

答案 1 :(得分:0)

我会仔细检查字段名称(如果这实际上是您尝试运行的代码)。你的类sd不包括你试图写/读的成员变量:deg,var,mult,power。它有a,b,c和d。

您可能在第一个for循环条件(“lengph”)中也有拼写错误。

最后,请记住,这只是复制那些3个stexp对象的成员变量的值。这与复制对象不同,这可能是你想要的。

相关问题