亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一段代碼求指導。

一段代碼求指導。

qq_晝綻_0 2016-04-20 12:43:19
這是問題截選public void add(){ ?DianShu b= new DianShu(); ?HuaSe a= new HuaSe(); ?Card c = new Card(null,null); ?int m=0; ?for(int i=0;i<4;i++){ ? c.huaSe= new String(a.a.get(i)); ? for(int j=0;j<13;j++){ ? ?c.dianShu= new String(b.a.get(j)); ? ?l.add(c); ? ? ? ?System.out.println(""+l.get(m).huaSe+":"+l.get(m).dianShu); ? ?m++; ? System.out.println("添加了卡牌:"+c.huaSe+":"+c.dianShu); ? } ? ? ?}// 問題就在下一行輸出,改變l的get的方法的int 的value值,結果不變,都為方塊K。 ?System.out.println(""+l.get(1).huaSe+":"+l.get(2).dianShu);// // ?for(Card d ?:l){// ? System.out.println(""+d.huaSe+":"+c.dianShu);// ? // ?}// ? }//完整的代碼:http://www.xianlaiwan.cn/opus/resource?opus_id=2911
查看完整描述

1 回答

已采納
?
星箜下

TA貢獻34條經驗 獲得超10個贊

當然就方塊K了,因為你Card c = new Card() 這條語句在循環外, 也就是說只有這么一個Card,注意:List中存放的是對象的引用,如果引用相同,那add方法是不會再次執行的,它認為List中已經有了這個對象,不知道這么說你明白了沒。

還有你這代碼風格也得改改啊, 用拼音還不如直接用漢字命名變量呢,反正java又不是不支持。過來人的經驗,我現在看我兩年前寫的代碼真的是沒法看,全是不明所以的漢語拼音.........

查看完整回答
反對 回復 2016-04-20
  • 星箜下
    星箜下
    翻了下JDK文檔, List是允許e1.equals(e2)存在于其中,但沒說e1 == e2 時能不能放進去,看你的代碼好像是放進去了,沒報錯。可以看看List的大小是不是54,還是1。
  • qq_晝綻_0
    qq_晝綻_0
    List的大小是52(沒大小王)
  • qq_晝綻_0
    qq_晝綻_0
    解決了你說的沒錯。 card放了52個。但每次更改時。52個都跟著變了。 十分感謝了。 這問題撩我兩天了。
  • 1 回答
  • 0 關注
  • 1553 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號