我最近参加了法国巴黎银行银行的采访 我被问到以下基于收集的问题。
有一个Employee类,其中包含对Designation类的引用
我被要求写一个帮助类,它接受员工列表并返回 根据其指定分组的员工名单。
class Employee
{
Designation designation;
public Employee(Designation designation) {
this.designation=designation;
}
}
class Designation
{
String des;
public Designation(String des) {
this.des=des;
}
}
class Helper
{
public static List<List<Employee>> groupList(List<Employee> empList)
{
List<List<Employee>> empGroupList=new ArrayList<List<Employee>>();
for(Employee e:empList)
{
// more code goes here
}
return empGroupList;
}
}
我回答了这个问题,假设Helper类有指定列表但是Interviewer说Helper类是Generic并且没有关于指定的知识。
答案 0 :(得分:3)
最简单的方法是在内部使用Map
,然后将其values()
转换为List
:
public static List<List<Employee>> groupList(List<Employee> empList) {
Map<String, List<Employee>> map = new HashMap<>();
for(Employee e : empList) {
String designation = e.getDesignation();
List<Employee> list = map.get(designation);
if (list == null) {
list = new ArrayList<>();
map.put(designation, list);
}
list.add(e);
}
return new ArrayList<>(map.values());
}