手动深层复制相互引用的对象

时间:2016-12-12 22:55:08

标签: java deep-copy

假设我有两个类,Axon和Neuron,其中Axon有一个Neuron类型的数组,而Neuron有一个Axon类型的ArrayLists:

public class Axon {
    public Axon(Neuron n1, Neuron n2) {
        pair = new Neuron[2];
        pair[0] = n1;
        pair[1] = n2;
        strength = 0;
    }
    public Neuron[] pair;
    public double strength;

public class Neuron {
    public Neuron() {
        axons = new ArrayList<>();
        inputs = new ArrayList<>();
        used = new ArrayList<>();
        override = -1;
    }
    public ArrayList<Axon> axons;
    public ArrayList<Double> inputs;
    public ArrayList<Axon> used;
    public double override;
}

如何在每个类的构造函数中为这些对象创建深度复制方法,以便新Axon中的字段引用新神经元,新神经元中的字段引用新Axons,而不会导致无限循环实例化?我试图避免使用其他深度复制方法,例如序列化,以避免性能瓶颈。

0 个答案:

没有答案