--Concaténer les chaînes retournées par plusieurs objets dans la liste --Utilisez java.util.stream.Stream introduit à partir de Java 8
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);
}
}
$ javac *.java
$ java Main
clé:valeur,Clé:valeur,Ki:Baryu, KEY:VALUE
Recommended Posts