【发布时间】:2017-04-28 16:03:07
【问题描述】:
我对 Java 还很陌生,但我希望能解决这个问题。
我目前有一个班级,在那个班级中我有一个名为“departments”的 TreeMap,它的参数为 >:
TreeMap <String, List<String>> department;
在 HR、Builders 等每个部门中,都有一份在那里工作的人员名单。如:
HR:珍妮特、琼斯、鲍勃
我想做的是在部门中搜索以查找所有包含例如称为“鲍勃”的人的部门(键),并将它们添加到集合中以进行返回。
谁能帮忙解决这个问题,我已经把头发拔了好几天了!到目前为止,我的方法已经到此为止了,尽管显然还远未完成!
public List<String> selectValues( String... aValue)
{
for(String eachDept : department.keySet()){
Collection<String> peopleInTheDept = department.get(eachDept);
for(String person : aValue){
if(peopleInTheDept.contains(person)){
result.add(person);
}
}
}
System.out.println(result);
}
【问题讨论】:
-
您的
akey我想是要搜索的人员列表吧? -
没错,抱歉刚刚编辑和更新以反映 aValue
-
为什么要将数组传递给
get方法?不应该是String作为关键吗?然后containsValue的值同样是department的值List<String>不是数组。另一个问题是,您没有存储从get方法检索到的值或对其进行任何操作。 -
很快有人可能会发布一些花哨的 java 8 流解决方案,但手动的 pre java 8 解决方案将遍历您的 entrySet (department.entrySet())。
-
IMO 将地图设为
TreeMap<String, HashSet<String>>并遍历每个部门并搜索列表中的每个值aValue更有意义