我有一张地图HashMap <Integer,Employee> map= new HashMap<Integer,Employee>();
类Employee
有一个int属性int empid;
,它将作为地图的关键。
我的方法是
public Set<Employee> listAllEmployees()
{
return map.values(); //This returns a collection,I need a set
}
如何从这种方法中获得一组员工?
答案 0 :(得分:9)
只需使用HashSet
map.values()
即可
public Set<Employee> listAllEmployees()
{
return new HashSet<Employee>(map.values());
}
答案 1 :(得分:1)
其他一些选择。
您仍然可以使用Collection Interface执行所有可能的set操作。 迭代,清除等等(请注意,values()返回的Collection是一个不可修改的集合)
使用map.values()。toArray()方法并返回一个数组。
答案 2 :(得分:0)
在Stream API的Java 8中,您可以使用此方法
public Set<Employee> listAllEmployees(Map<Integer,Employee> map){
return map.entrySet().stream()
.flatMap(e -> e.getValue().stream())
.collect(Collectors.toSet());
}