Javaのディープコピーとシャローコピーの実装方法は何ですか。

Javaにおけるディープコピーとシャローコピーの実装方法は次の通りです:

  1. 物体 (ぶったい)
  2. 複製()
  3. クローン可能
  4. コピーを作成する
public class MyClass implements Cloneable {
    private int value;
    private List<String> list;

    public MyClass(int value, List<String> list) {
        this.value = value;
        this.list = list;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        MyClass clone = (MyClass) super.clone();
        clone.list = new ArrayList<>(list);
        return clone;
    }
}
  1. ディープコピー:ディープコピーとは、新しいオブジェクトを作成し、元のオブジェクトのすべてのフィールドの値を新しいオブジェクトにコピーすることを指します。これには、参照型のフィールドも含まれます。ディープコピーには、参照型フィールドを手動で再帰的にコピーする必要があります。以下は例示コードです:
public class MyClass {
    private int value;
    private List<String> list;

    public MyClass(int value, List<String> list) {
        this.value = value;
        this.list = list;
    }

    public MyClass(MyClass other) {
        this.value = other.value;
        this.list = new ArrayList<>(other.list);
    }
}

上記は、深いコピーと浅いコピーの一般的な実装方法です。具体的な要求やシーンに応じて適切な方法を選択してください。

bannerAds