CodeGym/Java Blog/ランダム/Java System.arraycopy() メソッド
John Squirrels
レベル 41
San Francisco

Java System.arraycopy() メソッド

ランダム グループに公開済み
人のメンバー

Java System.arraycopy() メソッドとは何ですか?

java.lang.System.arraycopy() メソッドは、特定の開始位置にあるソース配列を、指定されたインデックスにある宛先にコピーします。
このメソッドはjava.lang.Systemクラスに属します。指定された長さの部分配列の内容を、指定されたソース配列から宛先配列と呼ばれる別の配列にコピーします。ソース配列は src と呼ばれ、宛先配列はdestと呼ばれます。要素の数はlen引数で指定されます。

Java System.arraycopy() メソッドの宣言

java.langクラスのjava.lang.System.arraycopy()メソッドのメソッド宣言は次のとおりです。
public static void arraycopy(Object src, int srcIndex, Object dest, int destIndex, int len)

パラメーター

arraycopyメソッドのパラメータは次のとおりです。
  1. src : ソース配列です。

  2. srcIndex : ソース配列の開始インデックスです。

  3. dest : 宛先配列です。

  4. destIndex : 宛先配列の開始インデックスです。

  5. len : コピー元の配列からコピー先の配列にコピーする必要がある要素の数です。

機能性

arraycopyメソッドは、 srcからのデータを、srcIndexからsrcIndex +( len - 1) 要素まで、 destIndexの dest 配列にdestIndex + ( len - 1) までコピーします。

戻り値

arraycopyメソッドの戻り値の型はvoidであり、何も返さないことを意味します。

public class Example {

    public static void main(String[] args) {

        String[] src = { "Monday","Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
        String[] dest = { "January", "February", "March", "April", "May", "June", "July", "August"};

        int srcIndex = 2;
        int destIndex = 3;
        int len = 2;

        //print number of elements that need to be copied
        //from the source to the destination array
        System.out.println("len : " + len);

        //print source index
        System.out.println("srcIndex : " + srcIndex);

        //print elements of the source array
        System.out.print("src : ");
        for (int i = 0; i < src.length; i++)
            System.out.print(src[i] + " ");
        System.out.println("");

        //print destination index
        System.out.println("destIndex : " + destIndex);

        //print elements of the destination array
        System.out.print("dest : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
        System.out.println("");

        // Use of arraycopy() method
        System.arraycopy(src, srcIndex, dest, destIndex, len);
        // this method copies the 'len' no of elements
        // from the src array to the dest array using the srcIndex
        // and destIndex as reference points in both the arrays


        // Print elements of destination after
        System.out.print("final destination array : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
    }
}

出力

len : 2 srcIndex : 2 src : 月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日 destIndex : 3 dest : 1月、2月、3月、4月、5月、6月、7月、8月 最終宛先配列: 1月、2月、3月、水曜日、6月、木曜日、7月、8月

パラメータ変更例

// Example of changing parameters
         srcIndex = 4;
         destIndex = 5;
         len = 1;

出力

len : 1 srcIndex : 4 src : 月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日 destIndex : 5 dest : 1月、2月、3月、4月、5月、6月、7月、8月 最終宛先配列: 1月、2月、3月、4月、5月、金曜日、7月、8月

説明

上記のコードでは、2 つの配列src[]dest[]を定義しました。その後、両方の配列の参照位置を定義するために srcIndexdestIndexを定義しました。最初の例ではSystem.arraycopyメソッドは、ソース配列src[]の要素を、インデックス 2 から開始してインデックス 3 で終了する ( len = 2 であるため) インデックス 3 から開始する宛先配列にコピーします。要素をコピーした後の最終的なコピー先の配列。 2 番目の例ではSystem.arraycopyメソッドはソース配列から1 つの要素をコピーします ( len = 1 であるため)。src[]は、インデックス 4 から始まり、インデックス 5 から始まる宛先配列にコピーされ、要素のコピー後に最終的な宛先配列も出力されます。

結論

この投稿を読み終えるまでに、 Java のjava.lang.System.arraycopyメソッドに慣れていただければ幸いです。概念をより深く理解できるように練習を続けてください。それまで、成長して輝き続けてください!
コメント
  • 人気
  • 新規
  • 古い
コメントを残すには、サインインしている必要があります
このページにはまだコメントがありません