ホームページ >Java >&#&チュートリアル >Java の Arrays.copyOf を使用して浅いコピーを実装するにはどうすればよいですか?

Java の Arrays.copyOf を使用して浅いコピーを実装するにはどうすればよいですか?

WBOY
WBOY転載
2023-04-24 19:31:06850ブラウズ

1. 浅いコピー手順

プロトタイプ オブジェクト内の値型であるメンバー変数の属性をすべて複製オブジェクトにコピーし、メンバーの参照アドレスもコピーします。プロトタイプ オブジェクト内の参照型の変数。クローン オブジェクトにコピーされます。つまり、プロトタイプ オブジェクト内のメンバ変数が参照オブジェクトの場合、この参照オブジェクトのアドレスはプロトタイプ オブジェクトとクローン オブジェクトの間で共有されます。簡単に言えば、浅いコピーはプロトタイプ オブジェクトのみをコピーしますが、それが参照するオブジェクトはコピーしません。

2.Arrays.copyOf() copy

新しい配列を作成し (つまり、新しいメモリ空間を割り当て)、System.arraycopy() コピーを呼び出します。内容を取得し、新しい配列に代入して、新しい配列を返します。

3. 例

public static byte[] copyOfRange(byte[] original, int from, int to) {
    int newLength = to - from;
    if (newLength < 0)
        throw new IllegalArgumentException(from + " > " + to);
    byte[] copy = new byte[newLength];
    System.arraycopy(original, from, copy, 0,Math.min(original.length - from, newLength));
    return copy;
}

実際には、System.arraycopy を呼び出しているため、浅いコピーである必要があります。

以上がJava の Arrays.copyOf を使用して浅いコピーを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。