java中基于字段值的列表列表
我最近参加了法国巴黎银行的一次采访 我被问到下面这个基于收集的问题 有一个Employee类,其中包含对指定类的引用 我被要求编写一个助手类,它获取员工列表并返回 根据其名称分组的员工名单java中基于字段值的列表列表,java,Java,我最近参加了法国巴黎银行的一次采访 我被问到下面这个基于收集的问题 有一个Employee类,其中包含对指定类的引用 我被要求编写一个助手类,它获取员工列表并返回 根据其名称分组的员工名单 class Employee { Designation designation; public Employee(Designation designation) { this.designation=designation; } } class Designati
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;
}
}
class员工
{
名称;
公职人员(指定){
这个名称=名称;
}
}
类别名称
{
字符串des;
公共名称(字符串des){
des=des;
}
}
类助手
{
公共静态列表组列表(列表雇员列表)
{
List empGroupList=newarraylist();
for(员工e:员工列表)
{
//这里有更多的代码
}
返回empGroupList;
}
}
我回答这个问题时假设Helper类有一个名称列表,但面试官说Helper类是泛型的,不知道名称 最简单的方法是在内部使用
映射
,然后将其值()转换为列表
:
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());
}
公共静态列表组列表(列表列表列表){
Map Map=newhashmap();
for(员工e:员工列表){
字符串名称=e.getDesignation();
列表=map.get(名称);
if(list==null){
列表=新的ArrayList();
地图放置(名称、列表);
}
列表.添加(e);
}
返回新的ArrayList(map.values());
}
OK,那么您的代码在哪里尝试泛化您的助手类?如果你没有一个,试着自己做一个,因为这是找出你的优点和缺点的最佳方法。我无法想出答案,做了一些没有运气的谷歌。这就是为什么贴在这里。