Java 8 Lambdas in Action

Zur Veranschaulichung der mit Java 8 eingeführten Lambda-Ausdrücke, möchte ich hier kurz ein paar Code-Beispiele zeigen, die den Einsatz von Lambdas demonstrieren. Die Beispiele basieren auf einer Demo von Paul Sandoz auf der Java 8 Launch Party 2014 in Berlin.

Die Basis für alle Beispiele ist die Methode words(), welche eine Liste von Vornamen zurückgibt. Die folgenden Programmcodes zählen die Anzahl der Wörter / Vornamen, deren Länge größer als Vier ist.

Grundlage: words()

1
2
3
4
5
6
7
8
9
public static List<String> words() {
  List<String> words = new ArrayList<>();
  words.add("Ulrike");
  words.add("Ron");
  words.add("Benny");
  words.add("Michael");
  words.add("Eva");
  return words;
}

1: Ohne Lambdas

1
2
3
4
5
6
long count = 0;
for (String word : words()) {
  if (word.length() > 4) {
    count++;
  }
}

2: Mit Filter

1
2
3
long count = words().stream()
                    .filter(w -> w.length() > 4)
                    .count();

3: Mit Filter und Mapping

1
2
3
4
long count = words().stream()
                    .filter(w -> w.length() > 4)
                    .mapToLong(e -> 1L)
                    .sum();

4: Mit MapReduce

1
2
3
4
long count = words().stream()
                    .filter(w -> w.length() > 4)
                    .mapToLong(e -> 1L)
                    .reduce(0, (a, b) -> a + b);

5: Mit vordefinierten MapReduce

1
2
3
4
long count = words().stream()
                    .filter(w -> w.length() > 4)
                    .mapToLong(e -> 1L)
                    .reduce(0, Long::sum);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.