Java 8: Как создать карту из списка, где Key выбирается из того же класса (empID) и значения, что и сам объект (Employee)? - PullRequest
2 голосов
/ 01 ноября 2019

Как преобразовать из списка в карту в 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)); ??

Я хочу второй параметр в toMap каксам объект. Кто-нибудь может подсказать, как добиться того же?

Я пытался сделать Collectors.toMap(CompanyEntity::getEmployeeId, this), но не смог избежать ошибок компиляции.

1 Ответ

5 голосов
/ 01 ноября 2019

Вы можете использовать Function.identity() из java.util.function:

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