首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在集合中存储数据

在集合中存储数据
EN

Stack Overflow用户
提问于 2012-10-10 00:18:40
回答 4查看 1.6K关注 0票数 0

我有一个要求,那就是我必须将雇员数据存储在java集合中。

代码语言:javascript
运行
复制
EmpId  EmpName EmpSalary
101     xxxxx    80000
101     yyyyy    40000
101     ddddd    60000 
101     zzzzz    80000

如上所述,EmpIdint类型,EmpNameString类型,EmpSalary也是int类型。

我计划将它们存储在一个Java集合中,这个集合可能是通用的。我有一个pojo,其中包含三个字段以及它们的setter和getter。

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-10 00:35:43

由于您没有EmpId的唯一值,因此可以使用ArrayList。:-

代码语言:javascript
运行
复制
class Employee {
    int id;
    String Name;
    double salary;
}

然后创建一个ArrayList<Employee>并将您的POJO实例添加到其中。

代码语言:javascript
运行
复制
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

票数 1
EN

Stack Overflow用户

发布于 2012-10-10 00:20:24

我将使用一个Map<Integer, EmployeePojo>EmpId字段是关键字,POJO是值。假设键值是唯一的,则为。如果是这样,使用Map将为您提供极好的访问时间。

更完整的代码片段,假设您的POJO名为Employee

代码语言:javascript
运行
复制
Map<Integer, Employee> employeeLookup = new HashMap<Integer, Employee>();
employeeLookup.put(employee1.getEmpId(), employee1);
employeeLookup.put(employee2.getEmpId(), employee2);

并通过id获取雇员。

代码语言:javascript
运行
复制
Employee employee = employeeLookup.get(someId);
票数 1
EN

Stack Overflow用户

发布于 2012-10-10 00:22:05

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12804259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档