嗨,我想复制一个数组...并且我不想使用复制速度很慢的“克隆”.. 我尝试了 arraycopy 和 copyOf,但它不起作用
for (int i = 0; i < arraySize; i++) {
City[] tempCities = Arrays.copyOf(cities, cities.length) ;
distance = 0;
tempCities[i].setVisited();
}
但这修改了我的原始数组(城市)。有谁知道如何复制而不让另一个指针指向同一对象
最佳答案
真正的问题是您在数组中存储引用。如果希望新数组中的对象独立于原始数组中的对象,则必须进行深复制。为此,cities[i].clone()
是您的 friend 。
至于您的性能问题,很可能是由于您在循环的每次迭代期间复制数组所致。这是非常浪费的;一个副本就足够了。
关于java - 如何在java中复制(内存)数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370474/