看板 java 關於我們 聯絡資訊
沒有學術根據的東西,請斟酌使用 or 開罵... import java.util.ArrayList; public class Foo { public int hashCode(){ System.out.println(super.hashCode()); return super.hashCode(); } public boolean equals(Object obj){ Foo other = (Foo) obj; return other.hashCode()==this.hashCode(); } public static void main(String args[]){ ArrayList<Foo> fooList = new ArrayList<Foo>(); Foo f1 = new Foo(); Foo f2 = new Foo(); fooList.add(f1); fooList.add(f2); fooList.remove(f2); } } ※ 引述《StubbornLin (Victor)》之銘言: : 我想從一個List中刪除一個物件 : 像這樣 : class Foo { : ... : } : public void del(Foo f) { : list.remove(f); : } : 但我卻發現它不像我預期一樣的刪掉list裡的f : 我看文件上說他會用equals比較來決定要不要刪 : 而equals和==的差別又在 : equals比的是內容 : 而==比的是reference : 那麼現在我想刪掉list中的某個object by reference時 : 該怎麼做? : 我試著overrideFoo的equals成 : return this == o; : 可是還是一樣,應該怎麼做才對? 謝謝 -- 如果我遇到的是識貨的人,我也會好好跟對方談買賣!! 貪得無饜的笨蛋門外漢,你也懂點分寸行嗎!! 《料理仙姬》2-p.100 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.214.175