Il existe des catégories d'entreprise et d'employés comme indiqué ci-dessous, et il existe de nombreux employés dans l'entreprise.
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) {
}
}
Ensuite, je veux obtenir la liste des ʻEmployee dans la liste des ʻemployeeIds
, je veux implémenter getEmployeeList
, et je vais implémenter Java8 et Java9.
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());
}
ʻOptional :: stream de Java 9 raccourcit le code de
getEmployeeList`.
Recommended Posts