我刚开始学习java,学习从java oracle文档映射,上面写着
当您在同一个大容量操作中开始混合键和值时,会发生什么?假设您有一个Map,经理,它将公司中的每个员工映射到员工的经理。对于键和值对象的类型,我们将故意模糊。没关系,只要他们是一样的。现在,假设您想知道所有的“个人贡献者”(或非经理)是谁。下面的片段将准确地告诉您想要知道的内容。
Set<Employee> individualContributors = new HashSet<Employee>(managers.keySet());
individualContributors.removeAll(managers.values());我试图为上述查询编写代码,但无法实现类Manager和Employee及其关系,并将其放入地图并获取managers.values()?有人能给我一个例子模板来为上面的查询创建类吗?
发布于 2016-10-10 17:40:54
在本例中,经理和其他员工的类型是无关的。它们之间的管理关系是通过“经理”地图来管理的。例如,您可以使用字符串设置映射,代码如下:
Map<String> managers = new HashMap<>();
managers.put("SoftwareEngineer1", "SoftwareEngineeringTeamManager");
managers.put("SoftwareEngineer2", "SoftwareEngineeringTeamManager");
managers.put("SoftwareEngineeringTeamManager", "MidLevelManager");
managers.put("MidLevelManager", "Executive");
managers.put("Executive", null);这就建立了两名软件工程师,由一名软件工程师团队经理管理,后者由一名中层经理管理,而后者则由一名高管管理,而后者没有人管理。地图中的键集是
["SoftwareEngineer1", "SoftwareEngineer2", "SoftwareEngineeringTeamManager", "MidLevelManager", "Executive"]这些值是
["SoftwareEngineeringTeamManager", "MidLevelManager", "Executive", null]在您发布的代码示例中,这些值将从键集中减去,因此您的结果是
["SoftwareEngineer1", "SoftwareEngineer2"]这些是您正在寻找的个人贡献者。
https://stackoverflow.com/questions/39963626
复制相似问题