@Test
public void streamForEachFilterTest() {
List<Mindmap> maps = getTestMindmaps();
assertEquals(3, maps.size());
List<Mindmap> ergebnis = new ArrayList<>();
System.out.println("Neu mit Stream API von Java 8 iterieren inkl. Filter:");
// iterieren mit forEach über eine Collection von Mindmaps und Lambda
// expressions inkl. Filter
maps.stream() // der Stream
.filter(mindmap -> mindmap.getName().contains("zwei"))
// mit dem Filter, alle Mindmaps die zwei im Namen enthalten
.forEach(mindmap -> { // über die gefundenen gefilterteten Mindmaps
System.out.println("Mindmap die (zwei) enthält: " + mindmap);
ergebnis.add(mindmap);
});
assertEquals(1, ergebnis.size());
}
private List<Mindmap> getTestMindmaps() {
// Liste mit Mindmaps erstellen
List<Mindmap> maps = new ArrayList<>();
// Mindmap 1 erstellen und der Liste hinzufügen
Mindmap m1 = new Mindmap();
m1.setPath(Paths.get("mindmap-eins.itmz"));
maps.add(m1);
// Mindmap 2 erstellen und der Liste hinzufügen
Mindmap m2 = new Mindmap();
m2.setPath(Paths.get("mindmap-zwei.itmz"));
maps.add(m2);
// Mindmap 3 erstellen und der Liste hinzufügen
Mindmap m3 = new Mindmap();
m3.setPath(Paths.get("mindmap-drei.itmz"));
maps.add(m3);
return maps;
}