Concaténer les chaînes renvoyées par des méthodes multi-objets dans Java Stream

Aperçu

--Concaténer les chaînes retournées par plusieurs objets dans la liste --Utilisez java.util.stream.Stream introduit à partir de Java 8

Code source

MyData.java

/**
 *Représente les données clé-valeur.
 */
public class MyData {

  private final String k;
  private final String v;

  public MyData(String key, String val){
    this.k = key;
    this.v = val;
  }

  public String key(){
    return k;
  }

  public String val(){
    return v;
  }
}

Main.java

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

public class Main {

  public static void main(String[] args) {

    //Construire des données
    List<MyData> list = new ArrayList<MyData>() {
      {
        add(new MyData("KEY", "VALUE"));
        add(null);
        add(new MyData("Clé", "valeur"));
        add(new MyData("Ki", "Baryu"));
        add(new MyData("clé", "valeur"));
        add(null);
        add(new MyData("key", null));
      }
    };

    //Créer et traiter des objets Stream
    String s = list.stream()
      .filter(Objects::nonNull) //Exclure les éléments nuls
      .filter(myData -> myData.val() != null) //Exclure ceux avec une valeur nulle
      .sorted(Comparator.comparing(MyData::key).reversed()) //Tri inversé par clé
      .map(myData -> myData.key() + ":" + myData.val()) //Générer une chaîne pour chaque élément
      .collect(Collectors.joining(", ")); //Concaténer les chaînes

    //Chaîne de caractères concaténée en sortie
    System.out.println(s);
  }
}

Résultat d'exécution

$ javac *.java
$ java Main
clé:valeur,Clé:valeur,Ki:Baryu, KEY:VALUE

Environnement de contrôle de fonctionnement

Matériel de référence

Recommended Posts

Concaténer les chaînes renvoyées par des méthodes multi-objets dans Java Stream
Plusieurs façons de concaténer des chaînes séparées par des virgules en Java
Comment concaténer des chaînes avec Java
Trier par plusieurs conditions à l'aide de Java Stream
Comment concaténer des chaînes séparées par des virgules à l'aide de StringJoiner même dans un environnement Java7
Essayez d'appeler des méthodes synchronisées à partir de plusieurs threads en Java
Parcourir les objets de classe dans Kotlin (au lieu de Java class name.class)
À propos de la conversion pleine largeur ⇔ demi-largeur des chaînes de caractères en Java
[Java, stream] Trier la liste d'objets en japonais par nom de propriété
Récapitulatif des valeurs renvoyées par la méthode des caractéristiques Spliterator #java
Générer un flux à partir d'un tableau de types primitifs en Java
[Java11] Résumé du flux -Avantages du flux-
API Java Stream en 5 minutes
Implémentation Java de tri-tree
Sortie de la différence entre chaque champ de deux objets en Java
Convertir un tableau de chaînes en une liste d'entiers en Java
Diverses méthodes de la classe Java String
À propos de Lambda, Stream, LocalDate de Java8
Différences dans les méthodes de fractionnement de StringUtils
Trier la liste des objets Java
[Java] DateTimeFormatter sortie par FormatStyle
Suppression d'objets AWS S3 dans Java
Liste des membres ajoutés dans Java 9
Flux de traitement de base de Java Stream
Liste des types ajoutés dans Java 9
Attrapez plusieurs exceptions ensemble dans Java
Implémentation d'une fonction similaire en Java
Utilisez-vous Stream en Java?
Comment convertir un tableau de chaînes en un tableau d'objets avec l'API Stream
Comparaison des méthodes d'implémentation de thread en Java et de la méthode d'expression lambda