Element einer Liste unter Java mittels des Stream-API ermitteln

Unter Java kommt es öfter vor, das ein bestimmter Eintrag in einer Liste gesucht werden soll. Gegeben sei in diesem Beispiel folgende Liste:

// List of elements
List elements = new ArrayList();

elements.add(new Element("Suppe", "Löffel"));
elements.add(new Element("Wasser", "Flüssigkeit"));
elements.add(new Element("Käse", "Gelb"));
elements.add(new Element("Huhn", "Ei"));

Die Klasse, welche die Elemente hält ist wie folgt definiert:

class Element {
    public final String Key;
    public final String Value;

    public Element(String key, String value) {
        Key = key;
        Value = value;
    }
}

Soll nun ein bestimmtes Element der Liste ermittelt werden, so kann dies auf dem klassischen Weg wie folgt erledigt werden:

// Get element
Element specificElement = null;

for (Element element : elements) {

    if ("Huhn".equals(element.Key)) {
        specificElement = element;
        break;
    }
}

Mit der seit Java 8 eingeführtes Stream-API kann das Problem eleganter gelöst werden:

// Get element via stream api
Element specificElement = elements.stream()
        .filter(element -> "Huhn".equals(element.Key))
        .findFirst()
        .orElse(null);

In diesem Fall werden die Elemente durchgegangen und überprüft ob in element.Key die Zeichenkette Huhn enthalten ist. Ist dies der Fall, wird das entsprechende Element zurückgegeben. Wird das Element in diesem Fall nicht gefunden, so ist die Variable specificElement null.

Enderdrache in Minecraft per Befehl spawnen

Bis vor einigen Versionen konnte der Enderdrache in Minecraft mittels des Befehls:

/summon ender_dragon

an beliebiger Stelle im Spiel gespawnt werden. Dies funktioniert immer noch, allerdings wird nur noch ein harmloser Enderdrache gespawnt, welcher sich nicht mehr von der Stelle bewegt.

Der Enderdrache im Ende

Damit ein funktionsfähiger Enderdrache gespawt werden kann, muss stattdessen mit dem Befehl:

/summon ender_dragon ~ ~ ~ {DragonPhase:0}

gearbeitet werden. Damit wird ein Enderdrachen erzeugt, welcher sich wie ein normaler Enderdrache verhält. Allerdings erhält er im Ende keine Bossleiste. Diese Bossleiste wird durch Eigenschaften im Ende verwaltet, welche nichts mit dem Enderdrachen als solchen zu tun haben. Per Befehl kann der Enderdrache mittels:

/kill @e[type=ender_dragon]

auch wieder aus dem Spiel entfernt werden. Das ist unter anderem dann praktisch, wenn der Drache in der Oberwelt gespawnt wurde.

Generative Kunst erstellen

Kunst für den Ungeübten ist ein schwieriges Pflaster. Das muss allerdings nicht immer so sein. Mit Silk kann auf einer bereitgestellten Zeichenfläche gemalt werden und dadurch entstehen dort interessante Bilder. Das Ganze hat dabei durchaus etwas Meditatives. Die Bilder können anschließend exportiert werden.

Silk in Aktion

Zu finden ist Silk unter weavesilk.com. Neben der Webapp existiert mittlerweile eine App für iOS, in der zweiten Version.

Silk 2 – Generative Art
Preis: 2,99 €

In der App existieren weitere Möglichkeiten zur Anpassung der Generierung, sowie ein HD-Export für die Ergebnisse.

Separates Watches-Fenster in IntelliJ IDEA aktivieren

In den neueren Versionen der Java-IDE IntelliJ IDEA wurde die Ansicht des Variables– und des Watches-Fensters standardmäßig zusammengelegt. Damit können alle aktuell aktiven Variablen und die selbstdefinierten Watches in einem Fenster betrachtet werden.

Standardmäßig ist das Variablen- und das Watch-Fenster zu einem Fenster zusammengefasst

Dem ein oder anderen mag diese neue Ansicht zu unübersichtlich sein. Die alte Ansicht ist nicht aus der IDE verschwunden, so das diese wieder aktiviert werden kann. Dazu muss dann Brillensymbol in der vertikalen Symbolleiste des Fensters ausgewählt werden.

Die alte Ansicht kann wieder aktiviert werden

Damit wird die alte Ansicht, in der die aktiven Variablen und die Watches wieder getrennt sind, aktiviert.

Historic Tale Construction Kit

Wer kennt es nicht, es ist Freitag Nachmittag und plötzlich wird ein historisch akurater Comic aus dem Mittelalter benötigt. Damit hier niemand im Regen stehen muss, gibt es das Historic Tale Construction Kit.

Mit dem Historic Tale Construction Kit können entsprechende Comics erstellt werden

Mit diesem ist es möglich solche Comics problemlos aus den vorgefertigten Elementen zu generieren. Ist der Comic fertiggestellt, kann er als PNG Datei exportiert werden. Ausprobiert werden kann das Ganze auf der Seite des Projektes. Der entsprechende Quelltext ist unter MIT-Lizenz lizenziert und damit freie Software. Er kann über GitHub bezogen werden.