将数据存储在集合中

时间:2012-10-09 16:18:40

标签: java collections

我有一个要求是我必须将员工数据存储在java集合

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

如上所示,EmpId属于int类型且EmpName属于String类型,而EmpSalary属于int类型。

我计划将它们存储在Java集合中,这可能是通用的。我有一个pojo,我有三个领域和他们的二传手和吸气剂。

哪个java集合最适合此要求?

在我的案例中,ID字段不是唯一的

4 个答案:

答案 0 :(得分:1)

我会使用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);

答案 1 :(得分: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));

但是,在检索Employees时,您需要比较多个值..因此,您可以覆盖equals()中的Employee POJO方法..然后您可以比较两个Employees使用e1.equals(e2)

答案 2 :(得分:0)

这看起来像是HashMap的理想情况。使用员工姓名或ID作为密钥,使用POJO作为值。

答案 3 :(得分:0)

我会创建一个新类,它将包含3个包含数据的字段变量。 然后你可以创建你所创建的新类的ArrayList。 在课堂上,您可以使用getter和setter来维护数据