gpt4 book ai didi

java - 如何使用 map 根据不同参数搜索员工对象列表?

转载 作者:行者123 更新时间:2023-12-02 12:57:49 25 4
gpt4 key购买 nike

我今天在采访中被问到这个问题,我尽我所能解释了这一问题。但我还是不明白这是否是正确的答案。

有一个以 Employee 对象为键的缓存。缓存中填充有数据库中的数据。现在有一个 UI,我们可以在其中输入 Employee 对象的 3 个属性中的一个或全部 - 姓名、ID 和加入日期。现在,此搜索将导致多个匹配结果。为了实现这一点,我们需要检查缓存中的数据。

对此我回答说我的 map 将具有以下结构 ->。对于同一个 EmployeeDetails 对象, 我将在 map 中拥有多个键(EmployeeDetails 类是包含员工完整详细信息的对象,包括地址等。员工对象只有 3 个属性 - 姓名、ID 和加入日期。)。

仅填充名称的对象之一。另一个填写了 ID,第三个填写了加入日期。现在有了属性的组合。所以 map 将有以下键 -仅填充名称的 Employee 对象 -> Value 将是具有相同名称的所有 Employee 对象的列表。仅填充 ID 的 Employee 对象 -> Value 将是具有相同 ID 的所有 Employee 对象的列表。理想情况下,本例中的列表大小应为 1。仅具有加入日期的员工对象 -> 具有相同加入日期的所有员工对象的列表。

类似地,还会有许多其他 Employee 对象。对于这样的一名员工,所有三个属性 - 姓名、ID 和加入日期都将被填充。

这样,我就可以实现在UI上仅设置姓名、ID和值之外的部分属性的情况下显示所有员工结果的要求。

我只是想了解这是否是实现结果的正确方法(在用户界面上显示匹配结果列表)。既然我没有被选中,我相信还有一些我可能错过的事情!

最佳答案

一个合理的简短答案是为 3 个字段中的每一个字段维护 3 个单独的映射,每个映射从每个字段值映射到具有该字段值的员工列表。

要执行查找,请检索用户指定的每个值的列表,然后(如果您有多个条件)迭代最短一个以过滤掉不符合条件的员工不符合其他条件。

如果您有多个条件,其中之一必须是姓名或 ID。在现实生活中,这些字段的列表会非常短,因此您不必迭代任何大型集合。

该解决方案本质上使用映射作为索引,并像关系数据库一样实现查询。如果你在面试中提到这一点,你会得到额外的分数,但你需要能够支持它。

关于java - 如何使用 map 根据不同参数搜索员工对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44367600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com