Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter

Wenn man mit Lambda über eine Collection iteriert, kann man auch gleich einen Filter verwenden. Was das mit der 20 zu tun hat, kommt am 1.12.2018 hier auf dem Blog 😉
Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter
Jetzt aber hier erst mal ein Beispiel zum Filter:

@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;
}

Und die nötige Mindmap BE Klasse:

package de.wenzlaff.mindmap.be;

import java.nio.file.Path;
import java.text.DateFormat;
import java.util.Objects;

/**
 * Eine Mindmap BE.
 * 
 * @author Thomas Wenzlaff
 *
 */
public class Mindmap implements Comparable<Mindmap> {

	private Path path;

	public Path getPath() {
		return path;
	}

	public void setPath(Path path) {
		this.path = path;
	}

	public String getErstelldatum() {
		return DateFormat.getInstance().format(getPath().toFile().lastModified());
	}

	/**
	 * LIefert den Namen der Mindmap Datei.
	 * 
	 * @return der Name der Datei.
	 */
	public String getName() {
		return getPath().getFileName().toString();
	}

	/**
	 * Liefert die Größe der Mindmap Datei in kB (1000).
	 * 
	 * Im Template Aufruf z.B.: (${mindmap.size} kB)
	 * 
	 * @return die Größe der Datei in kB.
	 */
	public String getSize() {
		return "" + getPath().toFile().length() / 1000;
	}

	@Override
	public int hashCode() {
		return Objects.hash(path);
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Mindmap other = (Mindmap) obj;
		return Objects.equals(path, other.path);
	}

	/**
	 * Der Name der Mindmap ohne Prefix.
	 */
	@Override
	public String toString() {
		return getName().substring(0, getName().length() - 5);
	}

	/**
	 * Zum sortieren von A-Z nach Namen.
	 */
	@Override
	public int compareTo(Mindmap mindmap) {
		return getName().compareTo(mindmap.getName());
	}

}

Ähnliche Artikel:

  1. Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions
  2. Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker™ tuts auch!
  3. Welche Möglichkeiten der Java Objekt-Erzeugung gibt es?

wallpaper-1019588
Tanzende Monsterbeschwörung auf abegelegenen Gefängnisinseln
wallpaper-1019588
Mercedes W140 W210 Klimabedienteil Fehlercode auslesen
wallpaper-1019588
Internationaler Tag der Biber – der International Beaver Day 2019
wallpaper-1019588
Hausmannskost, Schweinebraten, Wirsing, Kartoffeln
wallpaper-1019588
Neumond Engel Orakel Reading 24. Januar 2020: Seelenhochzeit, Fülle & Herzensweg
wallpaper-1019588
Geburtstag definition lustig
wallpaper-1019588
Gluckwunsche zur rente kollegin
wallpaper-1019588
Rote Bete Muffins mit Cranberries