gpt4 book ai didi

java - Collection接口(interface)Java教程中的错误

转载 作者:行者123 更新时间:2023-11-30 06:13:58 25 4
gpt4 key购买 nike

Collection Interface

在我看来,此示例代码需要更正:

Map<Employee, Employee> m = new HashMap<Employee, Employee>(managers);
m.values().removeAll(managers.keySet());

Set<Employee> slackers = m.keySet(); // this line should be changed to

Set<Employee> slackers = m.values();

有人可以确认吗?

最佳答案

只有知道该代码应该做什么,您才能知道该代码是否需要更正。这是上下文:

Once you've done this, you may have a bunch of employees whose managers no longer work for the company (if any of Simon's direct-reports were themselves managers). The following code will tell you which employees have managers who no longer works for the company.

    Map<Employee, Employee> m = new HashMap<Employee, Employee>(managers);
m.values().removeAll(managers.keySet());
Set<Employee> slackers = m.keySet();

因此,我们从一张 map 开始,将每位当前员工映射到一位经理。然后我们删除经理是当前雇员的所有条目。这给我们留下了一个 map ,其中只包含经理不是雇员的雇员的条目。最后,我们得到了 key 集……它为我们提供了这些员工作为一个集合。

这对我来说似乎是正确的1

你建议最后一行应该是:

    Set<Employee> slackers = m.values();

这将为您提供所有已离开的经理。但这不是问题所要求的答案。 (此外,m.values() 将返回一个 Collection 而不是 Set。)


TL;DR - 教程没有错误。


1 - 除了错误的假设,即没有经理的员工会懒惰 :-)。

关于java - Collection接口(interface)Java教程中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31094799/

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