2012-10-09 183 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