ds2799:
Ich habe eine Klasse Unternehmen
public class Company {
private String companyid;
private List<Employee> employees;
}
Welche wird in One2Many Beziehung zu Mitarbeiterbezogenen
public class Employee {
private String employeeId;
private Company company;
}
Ich bin mit einer Liste von Mitarbeitern geliefert und ich möchte eine Karte erzeugen , wie Map<companyId, List<Employee>>
Java - Streams mit , wie es performant sein muss.
employees.stream().collect(
Collectors.groupingBy(Employee::getCompany, HashMap::new, Collectors.toCollection(ArrayList::new));
Aber das Problem ist, ich nicht so etwas wie Mitarbeiter :: getCompany () aufgerufen werden kann. GetCompanyId ()
Wie kann ich das machen. Alle Vorschläge sind willkommen
Sie waren:
Verwenden einer Lambda-Ausdruck anstelle eines Verfahrens Referenz:
Map<String,List<Employee> output =
employees.stream()
.collect(Collectors.groupingBy(e -> e.getCompany().getCompanyId(),
HashMap::new,
Collectors.toCollection(ArrayList::new)));
Oder einfach:
Map<String,List<Employee> output =
employees.stream()
.collect(Collectors.groupingBy(e -> e.getCompany().getCompanyId()));