[問題] 關於.clone的問題?

看板java作者 (cchichi)時間12年前 (2012/05/03 15:57), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/2 (看更多)
底下是我遇到的一個bug... google過仍然不知道怎麼發生的,只好來板上請教了... 問題在 a[0][0] = b[1][1] 這一行上 我將b[1][1] 指定給a[0][0] , 但原本的b[0][0]卻會變成3 我的預期結果中 b只是複製a的值,但這兩個值是分開不會互相干擾的。 但是我用一維的陣列去測試卻沒有這個問題。 這樣...看得懂嗎="= int d[] = new int[2]; : a[0][0] = 0; : a[1][1] =3; : c[0] = 0; : c[1] =3; : b=a.clone(); : d = c.clone(); : System.out.println(a[0][0]); //0 : System.out.println(b[0][0]); //0 : a[0][0] = b[1][1]; : System.out.println(a[0][0]); //3 : System.out.println(b[0][0]);//3 : //expect a {{3,0} , {0,3}} b {{0,0} , {0,3}} : //actually a {{3,0} , {0,3}} b {{3,0} , {0,3}} : System.out.println(c[0]);//0 : System.out.println(d[0]);//0 : c[0] = d[1]; : System.out.println(c[0]);//0 : System.out.println(d[0]);//0 : //c{3,3} d{0,3} : System.exit(0); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.183.146

05/10 10:58, , 1F
請自己deep clone
05/10 10:58, 1F
文章代碼(AID): #1FeZfWJe (java)
文章代碼(AID): #1FeZfWJe (java)