2017-09-23 6 views
-2

例:スーパークラスの配列の要素をjavaのサブクラスの配列にコピーする方法は?

class A 
{ 
    int array[] = {1,2,3,4,5} 
} 
class B extends A 
{ 
    int new_array[]; 
} 

が今ここに、私はクラスAの配列と同じ要素を含むべきであるクラスBでそのnew_arrayにしたい

注:私はコピーしたい が、コピーされた配列に変更を加えたときに、変更が元の配列に反映されないようにする必要がある場合には注意してください。

+0

なぜ 'array'を継承しないのですか? –

+0

配列を継承する方法は? – Jorvis

+0

同じように他のものを継承します。 –

答えて

0

勉強やネットサーフィンをした後、私は最終的にループを使用せずに配列をコピーする方法を学びました管理します。次のように 解決策は以下のとおりです。

class A 
{ 
    int array[] = {1, 2, 3, 4, 5}; 
} 
class B extends A 
{ 
    int copyArray[] = array.clone(); 
} 

私はこのクローン()メソッドが本当に役に立ちました!

0

はこれを試してみてください:

public class A { 
    int arrayA[] = {1,2,4,5,3}; //unsorted array 
} 

public class B extends A { 
    int arrayB[]; 

    public void exampleOfCopySortPrint() { 
    arrayB = Arrays.copyOf(arrayA, 5); // copy the values of arrayA into arrayB 
    // arrayB is now an entirely new array 

    Arrays.sort(arrayB); // this sorts the array from small to large 

    // print all elements in arrayB 
    for (int i : arrayB) { 
     System.out.println(i); // 1, 2, 3, 4, 5 (sorted) 
    } 
    } 
} 

あなたが修飾公衆を追加したり、protected int array[];のような配列フィールド上で保護されていない場合も、クラスB

にフィールドを追加する必要はありませんクラスAで2つのクラスを同じフォルダ/パッケージに配置してください。

+0

あなたの意見が分かりました。 – Jorvis

+0

もうひとつ質問して欲しいと思います。配列をソートしたいのですが、指定された配列に変更を加えたくないとします。では、どうしたらいいですか? – Jorvis

+0

@Jorvisそうそう。 'Arrays'は特別なutilクラスであり、配列を操作する静的メソッドのロードを含んでいます。 –

0

クラスA {

int array[] = {1, 2, 3, 4, 5}; 

}

クラスBは{

int new_array[] = array; 

public void afterCopyArrayPrint() { 
    for (int i : new_array) { 
     System.out.println(i); 
    } 

} 

}

パブリッククラスArrayTest {

public static void main(String[] args) { 
    B ob = new B(); 
    ob.afterCopyArrayPrint(); 
} 
を拡張します

}

+0

空の配列に値の配列を代入するだけで、データは新しい配列変数 –

+0

にコピーされますが、あなたの解決策では、指定された配列でソートを実行したいが、作業。 – Jorvis

0
// TRY THIS 
public class Array 
{ 
    int[] a = {1, 2, 3, 4, 5}; 
    int length = a.length; 
} 

class Array2 extends Array 
{ 
    int[] newArray = new int[super.length]; 

    public static void main(String[] args) 
    { 
     Array obj = new Array(); 
     Array2 obj2 = new Array2(); 
     for (int i = 0; i < obj.length; i++) { 
      obj2.newArray[i] =obj.a[i]; 
      System.out.println(obj2.newArray[i]); 
     } 
    } 
} 
関連する問題