Java集合。员工商店的集合

时间:2012-06-30 16:21:17

标签: java collections

嘿,我只是想知道在为员工详细信息创建商店时使用的最佳收藏品,例如姓名,年龄地址,dob,工资和电子邮件地址。商店需要所有的基本要素,如添加,编辑,删除,删除所有和searchBy。

3 个答案:

答案 0 :(得分:3)

你可能想要一个快速搜索,所以一个哈希结构与你想要搜索的恶魔的关键可能是最好的解决方案。例如,如果要按名称搜索,可以创建如下类:

public class EmployeeStore {
    private Map<String, Employee> employees;

    public EmployeeStore() {
        employees = new HashMap<String, Employee>();
    }

    public void add(Employee e) {
        employees.add(e.getName(), e);
    }

    public Employee searchByName(String name) {
        return employees.get(name);
    }

    // etc.
}

使用employees数据结构根据您的需求实现所需的方法。如果按名称进行搜索,则可以将名称作为键字符串。

不幸的是,通过与索引不同的字段进行搜索将需要线性搜索,如果您有大量条目,这将很慢。

答案 1 :(得分:2)

只需为您的员工实体创建一个类,如下所示:

public class Employee
{
String name;
public void setName(String nm)
{
this.name=nm;
}
public String getName()
{
return this.name;
}
//Other variables and associated getter and setters
}

现在,您可以创建员工对象的集合:

ArrayList<Employee> employees=new ArrayList<Employee>();

或者你可以使用你想要的任何其他收藏品。

然后你需要为你想要的方法实现一些逻辑

Update(), Delete()

您应该使用HashMapMap来提高搜索速度!

答案 2 :(得分:1)

要使用的特定“最佳”集合将取决于访问需求和数据约束。但是您可以将多个集合封装在单个EmployeeStore类中,以便以多种方式进行访问。

如果您需要按名称进行搜索,并且可以保证名称是唯一的,那么名称存储为密钥的Map<String, Employee>将允许您快速查找具有给定名称的员工。如果不保证名称是唯一的,则可能需要Map<String, List<Employee>>

对于基于其他字段的搜索,您可以使用相应的键维护其他地图。

您的addremoveedit方法的实施当然必须更新您正确使用的所有地图。

如果您的搜索比按键的简单查找更复杂,或者您的数据很大,则可能需要使用数据库备份EmployeeStore而不是仅使用集合。