我有一个要求是我必须将员工数据存储在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字段不是唯一的
答案 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来维护数据