//Classe d'éléments à mettre en liste
public class MyData {
public final String name;
public final Integer age;
public MyData(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getMyInfo() {
return name + "(" + age + ")";
}
}
import java.util.ArrayList;
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<>() {
{
add(new MyData("Alice", 88));
add(new MyData("Bob", 8));
add(new MyData("Carol", null));
add(null);
}
};
//Exemple de conversion 1
List<String> list1 = list.stream() //Créer un objet Stream
.filter(Objects::nonNull) //Exclure les éléments nuls
.map(MyData::getMyInfo) //Générer une chaîne pour chaque élément
.collect(Collectors.toList()); //liste
System.out.println(String.join("\n", list1));
//Exemple de conversion 2
List<String> list2 = list.stream() //Créer un objet Stream
.filter(Objects::nonNull) //Exclure les éléments nuls
.map(mydata -> mydata.name + ": " + mydata.age) //Générer une chaîne pour chaque élément
.collect(Collectors.toList()); //liste
System.out.println(String.join("\n", list2));
//Exemple de conversion 3
List<String> list3 = list.stream() //Créer un objet Stream
.filter(Objects::nonNull) //Exclure les éléments nuls
.map(mydata -> { //Générer une chaîne pour chaque élément
if (mydata.age == null) {
return mydata.name;
} else {
return mydata.name + ": " + mydata.age;
}
})
.collect(Collectors.toList()); //liste
System.out.println(String.join("\n", list3));
}
}
Résultat d'exécution par Java 15 (AdoptOpenJDK 15 + 36).
$ javac *.java
$ java Main
Alice(88)
Bob(8)
Carol(null)
Alice: 88
Bob: 8
Carol: null
Alice: 88
Bob: 8
Carol
Référence: Stream \ (Java Platform SE 8 )
Recommended Posts