如何在java中复制(内存)数组?

嗨,我想复制一个数组…我不想使用复制速度慢的“克隆”..我试过arraycopy和copyOf,但它不能正常工作

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

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

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

至于您的性能问题,很可能是因为您在循环的每次迭代期间复制数组。 这非常浪费; 一份就足够了。