Java 8:如何从列表中创建映射,在该列表中,键是从与对象(员工)本身相同的类(empID)和值中获取的?

fat*_*ael 2 java arraylist hashmap java-8 collectors

在Java 8中,如何从列表转换为映射的形式empID来自类内部和作为对象本身的值。

List<CompanyEntity> result = 
             ifEntityManager.createNamedQuery("findByEmployeeId", CompanyEntity.class)
             .getResultList();
Map<String, CompanyEntity> result1 = result.stream()
        .collect(Collectors.toMap(CompanyEntity::getEmployeeId, CompanyEntity::this)); ??
Run Code Online (Sandbox Code Playgroud)

我想要第二个参数toMap作为对象本身。有人可以建议如何实现相同目标吗?

我尝试这样做,Collectors.toMap(CompanyEntity::getEmployeeId, this)但无法摆脱编译错误。

And*_*cus 5

您可以使用Function.identity()java.util.function

Map<String, CompanyEntity> result1 = result.stream()
    .collect(Collectors.toMap(CompanyEntity::getEmployeeId, Function.identity()));
Run Code Online (Sandbox Code Playgroud)

  • 或者只是`ce-&gt; ce` (4认同)