1

嘿,我只是想知道在为员工详细信息(例如姓名、年龄地址、出生日期、工资和电子邮件地址)创建商店时,最好使用什么集合。商店需要所有基本要素,例如添加、编辑、删除、全部删除和 searchBy。

4

3 回答 3

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并使用数据结构根据您的需要实现所需的方法。如果搜索是按名称完成的,您可以将名称作为键字符串。

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

于 2012-06-30T16:27:15.893 回答
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
}

现在您可以创建一个Employee对象的集合:

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

或者您可以使用您想要的任何其他集合。

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

Update(), Delete()

您应该使用HashMaporMap来获得更快的搜索功能!

于 2012-06-30T16:28:19.697 回答
1

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

例如,如果您需要按姓名搜索,并且可以保证姓名是唯一的,那么Map<String, Employee>将姓名存储为键可以让您快速找到具有给定姓名的员工。如果不能保证名称是唯一的,您可能需要一个Map<String, List<Employee>>.

对于基于其他字段的搜索,您可以使用适当的键维护其他映射。

您的add,removeedit方法的实现当然必须适当地更新您使用的所有地图。

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

于 2012-06-30T17:01:45.820 回答