Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中基于字段值的列表列表_Java - Fatal编程技术网

java中基于字段值的列表列表

java中基于字段值的列表列表,java,Java,我最近参加了法国巴黎银行的一次采访 我被问到下面这个基于收集的问题 有一个Employee类,其中包含对指定类的引用 我被要求编写一个助手类,它获取员工列表并返回 根据其名称分组的员工名单 class Employee { Designation designation; public Employee(Designation designation) { this.designation=designation; } } class Designati

我最近参加了法国巴黎银行的一次采访 我被问到下面这个基于收集的问题

有一个Employee类,其中包含对指定类的引用

我被要求编写一个助手类,它获取员工列表并返回 根据其名称分组的员工名单

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,那么您的代码在哪里尝试泛化您的助手类?如果你没有一个,试着自己做一个,因为这是找出你的优点和缺点的最佳方法。我无法想出答案,做了一些没有运气的谷歌。这就是为什么贴在这里。