我想在第ArrayList中使用包含方法,其中存儲了Employee類的對象。但是,當我用這個方法,它總是返回false即使我實現了在Employee類的equals方法在ArrayList中使用包含方法
這是我的嘗試:
Employee類:
public class Employee {
.
.
.
@Override
public boolean equals(Object o){
if(o instanceof Employee)
{
Employee e = (Employee) o;
return this.id==(e.id);
}
return false;
}
@Override
public int hashCode() {
int hash = 7;
hash = 79 * hash + (int) (this.id^(this.id >>> 32));
return hash;
}
測試類 :
public class Test {
LinkedList <Employee>list=new LinkedList <Employee>();
Employee e=new Employee();
long id=0;
e.setId(20710456);
list.add(e);
e.setId(30560432);
list.add(e);
public void Edit()
{
id=Integer.parseInt(JOptionPane.showInputDialog(null,"Enter the id of the
employee"));
e.setId(id);
System.out.print(list.contains(e.getId()));
if(list.contains(e.getId())){
.
.
//rest of the code
}
}
}
請給一個簡短而*完整*例子,最好有更好的壓痕。我們不知道你的ID是什麼,你的代碼永遠不會給列表添加任何東西...... – 2013-04-03 21:03:08
@JonSkeet,該列表包含ida,但我沒有提到爲快點:eidted – 2013-04-03 21:11:57
將來,請花點時間問一個問題,確保你已經包含了所有相關的*和*儘可能好的內容。閱讀http://tinyurl.com/so-list – 2013-04-03 21:14:10