我有兩個相同的二維數組的字符,但我想這樣做,所以當我改變一個它不會影響其他。我假設這是因爲他們在記憶中共享相同的空間,並想知道如何阻止這一點。如何停止兩個陣列具有相同的內存
private char[][] a;
private char[][] b;
a = new char[8][];
b = new char[8][];
while(file.hasNext()) //reads 8 lines from a file and adds it to text to both arrays
{
char[] constant = file.nextLine().toCharArray();
a[i] = constant;
b[i] = constant;
i++;
}
然後如果我是運行的代碼
a[0][0] = 't';
那麼它也改變B [0] [0]至 'T'
發佈您的代碼。變量不'在Java中共享內存。 – EJP
@EJP _Technically_,它們可能被存儲在變量表的同一個索引中。 (破壞球) –
@SotiriosDelimanolis這將隱含地違反Java語言規範#4.5和Java虛擬機規範#2.5(每個語言中相同的措詞)。 – EJP