Как собирать списочные значения в объект коллектора - PullRequest
1 голос
/ 25 марта 2020

Я пытаюсь собрать 2 поля данных из объекта списка.

Я использую объект Employee:

public class Employee
{

  private long id;
  private Source source;
  private String name;
  private String gender;

  // getters
   private Builder toBuilder(Builder builder)
    {
        builder.id = this.summaryDataId;
        builder.name = this.name;
        builder.gender = this.gender;
        builder.source = this.source;
        return builder;
    }

получение данных о сотруднике в список в классе обслуживания

final List<Employee> employeeData = employeeDao.retrieveEmployeeData(emp.getID());

и затем попытка создать список с employeeId и sourceid (например: 1234: 3). для этого я пытаюсь использовать collectors.toList

List<String> employeeCollector = employeeData.stream()
                .filter(s -> s.getId != null)
                .filter(s -> s.getSource() != null && s.getSource().getId() != null)
                .collect(Collectors.toList());

как получить employeeid: souceid формат с помощью collectors.toLis ()

1 Ответ

1 голос
/ 25 марта 2020

Вам просто нужна промежуточная операция map, чтобы извлечь идентификатор сотрудника и идентификатор источника

List<String> employeeCollector = employeeData.stream()
            .filter(s -> s.getId != null)
            .filter(s -> s.getSource() != null && s.getSource().getId() != null)
            .map(s-> String.format("%s:%s",s.getId(),s.getSource().getId()))
            .collect(Collectors.toList());
...