Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java集合。雇员商店的收款_Java_Collections - Fatal编程技术网

Java集合。雇员商店的收款

Java集合。雇员商店的收款,java,collections,Java,Collections,嘿,我只是想知道,在为员工的姓名、年龄、地址、出生日期、工资和电子邮件地址等详细信息创建商店时,最好使用什么样的集合。商店需要所有基本要素,如添加、编辑、删除、全部删除和searchBy。您可能需要快速搜索,因此以密钥作为搜索依据的哈希结构可能是最佳解决方案。例如,如果要按名称搜索,可以创建如下类: public class EmployeeStore { private Map<String, Employee> employees; public Employe

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

您可能需要快速搜索,因此以密钥作为搜索依据的哈希结构可能是最佳解决方案。例如,如果要按名称搜索,可以创建如下类:

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数据结构实现所需的方法。如果按名称进行搜索,则可以将名称作为键字符串


不幸的是,按不同于索引的字段进行搜索将需要线性搜索,如果您有大量的条目,则搜索速度会很慢。

您可能需要快速搜索,因此以关键字作为搜索依据的哈希结构可能是最佳解决方案。例如,如果要按名称搜索,可以创建如下类:

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数据结构实现所需的方法。如果按名称进行搜索,则可以将名称作为键字符串


不幸的是,按不同于索引的字段进行搜索将需要线性搜索,如果您有大量条目,则搜索速度会很慢。

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

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
}
现在,您可以创建员工对象的集合:


您应该使用HashMap或Map来实现更快的搜索功能

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

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
}
现在,您可以创建员工对象的集合:


您应该使用HashMap或Map来实现更快的搜索功能

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

例如,如果您需要按姓名进行搜索,并且可以保证姓名是唯一的,那么将姓名存储为密钥的映射将允许您快速查找具有给定姓名的员工。如果不能保证名称是唯一的,您可能需要一个映射

对于基于其他字段的搜索,可以使用适当的键维护其他地图

添加、删除和编辑方法的实现当然必须适当地更新您使用的所有映射


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

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

例如,如果您需要按姓名进行搜索,并且可以保证姓名是唯一的,那么将姓名存储为密钥的映射将允许您快速查找具有给定姓名的员工。如果不能保证名称是唯一的,您可能需要一个映射

对于基于其他字段的搜索,可以使用适当的键维护其他地图

添加、删除和编辑方法的实现当然必须适当地更新您使用的所有映射


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

您希望员工数量是多少?您希望员工数量是多少?