1

嗨,我想复制一个数组……我不想使用复制速度慢的“克隆”……我尝试了 arraycopy 和 copyOf,但它不起作用

for (int i = 0; i < arraySize; i++) {
            City[] tempCities = Arrays.copyOf(cities, cities.length) ;
            distance = 0;
            tempCities[i].setVisited();
}

但这修改了我原来的数组(城市)。有谁知道如何复制并且没有另一个指向同一对象的指针

4

1 回答 1

2

真正的问题是您将引用存储在数组中。如果您希望新数组中的对象独立于原始数组中的对象,则必须进行深层复制。为此,cities[i].clone()是你的朋友。

至于您的性能问题,很可能是由于您在 loop 的每次迭代期间都复制了数组。这是非常浪费的;一个副本就足够了。

于 2013-03-12T19:34:47.780 回答