Java 9 Facultatif :: stream

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

Java 9 Facultatif :: stream
Essayez Java 8 Stream
Java Type facultatif
Étudier Java 8 (facultatif)
API Java Stream
Étudier Java 8 (Stream)
Terminaison du flux Java
[Java] Traitement de flux
[Java] Mémorandum facultatif
[Java] Remarque sur les collecteurs de flux
[Java] Génération de flux API-Stream
[Java] API / carte de flux
Afficher la documentation Java de Java Facultatif
À propos de l'opération de réduction du flux Java8
Résumé approximatif du flux Java8
Réécrire Java try-catch avec facultatif
[Java11] Résumé du flux -Avantages du flux-
Comment utiliser java Facultatif
Aide-mémoire de l'API Java Stream
Java
Java Stream ne peut pas être réutilisé.
[Java] Introduction à l'API Stream
Java8 pour démarrer maintenant ~ Facultatif ~
Comparez Java 8 en option avec Swift
Application Java pour les débutants: stream
Comment gérer les exceptions froidement avec Java 8 Stream ou en option
Obtenir une collection non vide à partir d'un flux facultatif avec java
[Java 8] Suppression en double (et vérification en double) avec Stream
[java8] Pour comprendre l'API Stream
À propos de Lambda, Stream, LocalDate de Java8
[Introduction à Java] À propos de l'API Stream
[Java] Vérification de l'existence des éléments avec Stream
Utilisation de base de Java Facultatif Partie 1
J'ai essayé d'utiliser l'API Java8 Stream
Flux de traitement de base de Java Stream
Java 8 ~ Stream API ~ pour commencer maintenant
Liste de conversion mutuelle de tableau / liste / flux Java
Conversion de liste Java8 avec Stream map
Utilisez-vous Stream en Java?
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
[Java] Annotation
Module [Java]
Tableau Java
Astuces Java, astuces
Méthodes Java
Méthode Java
java (constructeur)
Tableau Java
[Java] ArrayDeque
Traitement des données à l'aide de l'API de flux de Java 8
java (remplacement)
java (méthode)
Journée Java 2018
java (tableau)
Java statique
Sérialisation Java