我開發了一個名爲Employee.java的pojo。現在我打算將它作爲用戶定義的集合。我想製作一張地圖並將所有員工類型對象存儲在其中。關於地圖作爲用戶定義的基地
下面是我的POJO
public class Employee {
String name,job;
int salary;
public Employee(String n , String j, int t) //constructor
{
this.name= n;
this.job=j;
this.salary= t;
}
@Override
public int hashCode()
{
return name.hashCode()+job.hashCode()+salary;
}
@Override
public boolean equals(Object obj) {
Employee e = (Employee) obj;
return this.name.equals(e.name)&&this.job.equals(e.job)&&this.salary==e.salary;
}
}
現在,我已經開發了包含地圖,並且將商店僱員類型的對象..
public static void main(String[] args)
{
Map employeeMap = new HashMap();
Employee e = new Employee("Saral", "Trainer", 34000);
Employee e1 = new Employee("Sarall", "saral", 34090);
employeeMap.put("S", e);
employeeMap.put("S1", e);
System.out.println(employeeMap.size());
Set s = employeeMap.entrySet();
Iterator it = s.iterator();
while(it.hasNext())
{
Map.Entry m =(Map.Entry)it.next();
System.out.println(m.getKey()+"\t"+m.getValue());
}
但是當我嘗試運行它,我想另一個類獲取員工詳細信息,但我在屏幕上顯示了對象...我想查看員工價值,請告訴我如何從員工對象獲取價值。
2
S [email protected]
S1 [email protected]
嗨,我聽不懂的hashCode()方法是怎麼壞了,請expalin詳細..! !我已經生成了eclipse生成的hashcode(),但它與mine hashcode()不同,請詳細說明。 – Neera 2012-04-15 17:36:09
我也檢查過在使用eclipse的時候它會出現錯誤,這是完美的,但是在使用它的時候它會變成真實的,請解釋我的哈希代碼()的實現錯誤以及它如何與eclipse生成的不同hashcode()以及如果我想爲這個類編寫自己的hashcode(),那麼提前感謝。 – Neera 2012-04-15 17:39:12
我從來沒有見過eclipse生成你的那種散列碼。但問題是(a + b)=(b + a)。因此,在計算哈希碼時,您必須考慮字段的順序。有關更多詳細信息,請參見此處:http://www.technofundo.com/tech/java/equalhash.html – barsju 2012-04-15 17:41:16