0

オブジェクト配列の一部を別のオブジェクト配列にコピーする方法

私はこのようなクラスを持っています

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

そして、このような2つの配列

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

stexp の 3 を 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);

助けてくれてありがとう。:)

opps 間違ったコードを変更しました。

オブジェクト配列を別のオブジェクト配列にコピーしたいのですが、

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

しかし、Eclipseでコードを実行すると機能しません。

4

2 に答える 2

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));
    }
}
于 2013-02-26T18:38:36.487 に答える
0

フィールド名を再確認します (これが実際に実行しようとしているコードである場合)。クラス sd には、読み書きしようとしているメンバー変数が含まれていません: deg、var、mult、power。a、b、c、および d があります。

最初の for ループ条件 ("lengph") にタイプミスがある可能性もあります。

最後に、これはこれら 3 つの stexp オブジェクトのメンバー変数の値をコピーするだけであることに注意してください。これは、オブジェクトをコピーすることとは異なります。これは、必要な場合があります。

于 2013-02-26T18:53:00.943 に答える