Java 如何基于对象的相同元素将集合拆分为多个集合?
我收集了办公室所有部门的员工。我需要将这个集合拆分为几个不同的集合,也就是说,我想将所有员工拆分为他们的部门。重要的是,我自己不要写部门的名称,程序本身会根据需要将集合分成多个部分。有可能做到这一点吗?如果有,将如何实施 有一个集合,此集合包含office workers(所有)。该类中的员工有一个其工作的注册部门(类型为STRING)。有必要根据部门划分整个集合 很遗憾,我无法共享这些类(生产代码)。我试图通过一个for循环运行ArrayList,然后通过一个if进行拆分,但后来我被卡住了,不知道接下来如何创建其他集合 雇员:Java 如何基于对象的相同元素将集合拆分为多个集合?,java,collections,Java,Collections,我收集了办公室所有部门的员工。我需要将这个集合拆分为几个不同的集合,也就是说,我想将所有员工拆分为他们的部门。重要的是,我自己不要写部门的名称,程序本身会根据需要将集合分成多个部分。有可能做到这一点吗?如果有,将如何实施 有一个集合,此集合包含office workers(所有)。该类中的员工有一个其工作的注册部门(类型为STRING)。有必要根据部门划分整个集合 很遗憾,我无法共享这些类(生产代码)。我试图通过一个for循环运行ArrayList,然后通过一个if进行拆分,但后来我被卡住了,不
公共类员工{
私有字符串名称;
私有字符串lastName;
私人弦乐部;
}
方法(我在其中显示我的列表):
public void method(){//更改方法名称
List employeeKnowledgeList=employeeKnowledgeRepository
.findeEmployeeKnowledgeByStatus(KnowledgeStatus.KNOW);
List employeeList=新建ArrayList();//
employeeKnowledgeList.forEach(e->employeeList.add(employeeRepository.getOne(e.getEmployeeId());
//现在我不知道如何划分我的员工名单
}
这里需要的是一个地图数据结构,其中键是部门
,值是列表
。这很容易实现,如下所示:
var departmentMapped = employees
.stream()
.collect(Collectors.groupingBy(Employee::getDepartment));
基本上,这是将员工列表流化,并根据其各自的部门将其收集到新的
地图。有了这个工具,您只需使用Map#get
获取特定部门的员工列表,这里需要的是一个Map数据结构,其中键是部门
,值是列表
。这很容易实现,如下所示:
var departmentMapped = employees
.stream()
.collect(Collectors.groupingBy(Employee::getDepartment));
基本上,这是将员工列表流化,并根据其各自的部门将其收集到新的地图。有了这个工具,你可以简单地使用Map#get
var获取特定部门的员工列表?whats var?var
是Java 10中引入的一个关键字,它允许通过简单地使用var
声明变量,并让局部类型推断推断类型(基于正确部分的赋值)。将var departmentMapped
视为Map departmentMapped
。我无法获取元素。请告诉我怎么做?你所说的“我无法获取元素”是什么意思?它是一个简单的映射对象。检查如何从映射
.var中检索值?whats var?var
是Java 10中引入的一个关键字,它允许通过简单地使用var
声明变量,并让局部类型推断推断类型(基于正确部分的赋值)。将var departmentMapped
视为Map departmentMapped
。我无法获取元素。请告诉我怎么做?你所说的“我无法获取元素”是什么意思?它是一个简单的映射对象。检查如何从映射中检索值。