2012-10-09 125 views
0

我有一個要求,即是我必須在僱員數據存儲Java集合中存儲數據

EmpId EmpName EmpSalary 
101  xxxxx 80000 
101  yyyyy 40000 
101  ddddd 60000 
101  zzzzz 80000 

如圖所示那EmpId以上是int類型和EmpNameString類型和EmpSalary是再次是int類型。

我打算將它們存儲在一個Java集合中,這可能是通用的。我有一個pojo與我有三個領域,他們的制定者和獲得者。

哪個java集合最適合這個需求?

在我的情況ID字段是不是唯一的

+0

看看[ArrayList](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html)..你需要這個.. –

+0

你有多個員工與EmpId相同?怎麼來的? –

+0

@Rohit這裏沒有主要關鍵概念.. !! – user1726942

回答

1

既然你不具備的獨特價值EMPID,您可以使用ArrayList: -

class Employee { 
    int id; 
    String Name; 
    double salary; 
} 

然後有一個ArrayList<Employee>並添加POJO實例吧..

List<Employee> empList = new ArrayList<Employee>(); 

empList.add(new Employee(1001, "rohit", 542345)); 
empList.add(new Employee(1001, "abc", 542345)); 
empList.add(new Employee(1001, "asf", 542345)); 

但是,在獲取員工,你需要一個以上的值進行比較。所以,你可以在你Employee POJO重寫equals()方法..那麼y您可以使用e1.equals(e2)比較兩個Employees

+0

非常感謝..! – user1726942

+0

@ user1726942 ..不客氣.. –

1

我會用一個Map<Integer, EmployeePojo>,與EmpId領域中的關鍵和POJO作爲值。假設關鍵值是獨特的。如果是,使用地圖會爲您提供極佳的訪問時間。

更完整的片段,假設你的POJO被稱爲Employee

Map<Integer, Employee> employeeLookup = new HashMap<Integer, Employee>(); 
employeeLookup.put(employee1.getEmpId(), employee1); 
employeeLookup.put(employee2.getEmpId(), employee2); 

,並通過ID

Employee employee = employeeLookup.get(someId); 
0

這看起來像一個HashMap理想的情況下獲得的僱員。使用員工姓名或ID作爲鍵和POJO作爲值。

+0

請檢查我的最新的帖子,還請張貼代碼,這將使認識更加清晰 – user1726942

0

我會創建一個新的類,它將有3個字段變量將包含數據。 然後你可以創建一個你創建的新類的ArrayList。 在課堂上,你可以讓getter和setter方法,以保持數據

+0

請查看我最新的帖子,還請張貼代碼示例這將使認識更加清晰 – user1726942