我有一个要求,那就是我必须将雇员数据存储在java集合中。
EmpId EmpName EmpSalary
101 xxxxx 80000
101 yyyyy 40000
101 ddddd 60000
101 zzzzz 80000如上所述,EmpId是int类型,EmpName是String类型,EmpSalary也是int类型。
我计划将它们存储在一个Java集合中,这个集合可能是通用的。我有一个pojo,其中包含三个字段以及它们的setter和getter。
哪个java集合最适合这个需求?
在我的案例中ID字段不是唯一的
发布于 2012-10-10 00:35:43
由于您没有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()方法。然后,您可以使用e1.equals(e2)比较两个Employees。
发布于 2012-10-10 00:20:24
我将使用一个Map<Integer, EmployeePojo>,EmpId字段是关键字,POJO是值。假设键值是唯一的,则为。如果是这样,使用Map将为您提供极好的访问时间。
更完整的代码片段,假设您的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);发布于 2012-10-10 00:22:05
这看起来是HashMap的理想情况。使用员工姓名或id作为键,POJO作为值。
https://stackoverflow.com/questions/12804259
复制相似问题