Es gibt Unternehmens- und Mitarbeiterklassen, wie unten gezeigt, und es gibt viele Mitarbeiter im Unternehmen.
Employee.java
public class Employee {
private String id;
private String name;
}
Company.java
public class Company {
private List<Employee> employees = new ArrayList<>();
public Option<Employee> getEmployeeById(String employeeId) {
return employees.stream().filter(e -> e.id.equals(employeeId)).findFirst()
}
public List<Employee> getEmployeeList(List<String> employeeIds) {
}
}
Als nächstes möchte ich die Liste von "Employee" in die Liste von "employeeIds" aufnehmen, "getEmployeeList" implementieren und Java8 und Java9 implementieren.
Java8.java
public List<Employee> getEmployeeList(Collection<String> employeeIds) {
return employeeIds.stream()
.map(this::getEmployeeById)
.filter(Optional::isPresent)
.map(Optional::get)
.collect(toList());
}
Java9.java
public List<Employee> getEmployeeList(Collection<String> employeeIds) {
return employeeIds.stream()
.map(this::getEmployeeById)
.flatMap(Optional::stream)
.collect(toList());
}
Java 9s Optional :: stream
verkürzt den Code für getEmployeeList
.
Recommended Posts