嗨我想要复制一个数组...而且我不想使用复制速度慢的“克隆”。 我尝试了arraycopy和copyOf,但它无法正常工作
for (int i = 0; i < arraySize; i++) {
City[] tempCities = Arrays.copyOf(cities, cities.length) ;
distance = 0;
tempCities[i].setVisited();
}
但这会修改我的原始数组(城市)。有没有人知道如何复制,没有另一个指向同一个对象的指针
答案 0 :(得分:2)
真正的问题是您将引用存储在数组中。如果希望新数组中的对象独立于原始数组中的对象,则必须进行深层复制。为此,cities[i].clone()
是您的朋友。
至于您的性能问题,很可能是因为您在循环的每次迭代期间复制数组。这非常浪费;一份就足够了。