0

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

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

如上所示,它EmpIdint类型,EmpNameString类型,EmpSalary又是int类型。

我打算将它们存储在一个 Java 集合中,这可能是通用的。我有一个 pojo,我有三个字段及其设置器和获取器。

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

在我的情况下,ID 字段不是唯一的

4

4 回答 4

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);
于 2012-10-09T16:20:24.013 回答
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));

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

于 2012-10-09T16:35:43.170 回答
0

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

于 2012-10-09T16:22:04.827 回答
0

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

于 2012-10-09T16:23:07.380 回答