Was ist neu in Java 8?

Who?

@carimatics --Web Application Engineer »Im Geschäft spiele ich mit Perl


Nun, alle zusammen


Benutzer von Java 8 oder höher: raise_hand:


Benutzer neuer Java 8-Funktionen: raise_hand:


Neue Funktionen seit Java 8

Lambda-Stil

Stream API

etc...


ich werde schreiben


Lambda-Stil


Gibt die Länge der Zeichenfolge zurück

Anonyme Klassenversion

Implementierung

Function<String, Integer> countLen = new Function<>() {
    @Override
    public Integer apply(String s) {
        return s.length();
    }
};
int len = countLen.apply("Function class sample!!!");
System.out.println(len); // => 24

Problem

»Es ist nur lang


Redundante Dinge abschneiden


Function<String, Integer> countLen = new Function<>() {
    @Override
    public Integer apply(String s) {
        return s.length();
    }
};

Function<String, Integer> countLen =
    @Override
    public Integer apply(String s) {
        return s.length();
    }
 ;

Function<String, Integer> countLen =

                        (String s) {
        return s.length();
    }
 ;

Function<String, Integer> countLen = (String s)    { return s.length(); };

Organisieren


Function<String, Integer> countLen = (String s) -> { return s.length(); };

--Lambda-Ausdrücke erfordern -> (Pfeil-Token) zwischen dem Argument und dem Body


Function<String, Integer> countLen = (String s) ->          s.length()   ;

Function<String, Integer> countLen =         s  ->          s.length()   ;

Function<String, Integer> countLen = s -> s.length();

Organisieren (Obwohl es in das Methodenreferenzformat geändert werden kann, wird es aus zeitlichen Gründen weggelassen.)


Gibt die Länge der Zeichenfolge zurück

Anonyme Klassenversion

Function<String, Integer> countLen = new Function<>() {
    @Override
    public Integer apply(String s) {
        return s.length();
    }
};

Lambda-Version

Function<String, Integer> countLen = s -> s.length();

Stream API


Durchschnittswert von [1..100]

zur Aussage

double sum = 0.0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}
double ave = sum / 100;

Stream API

double ave = IntStream.rangeClosed(1, 100)
        .average()
        .orElse(0.0);

Durchschnittsgehalt von Männern in den Dreißigern unter den Mitarbeitern

zur Aussage

double sumSalary = 0.0;
for (Employee employee : employees) {
    if (30 <= employee.getAge() && employee.getAge() < 40
            && employee.getGender() == Gender.MALE) {
        sumSalary += employee.getSalary();
    }
}
double a = employees.isEmpty() ? 0.0 : sumSalary / employees.size();

Stream API

double averageSalary =
        employees.stream()
                .filter(e -> 30 <= e.getAge() && e.getAge() < 40) //30er Jahre
                .filter(e -> e.getGender() == Gender.MALE)        //männlich
                .mapToInt(e -> e.getSalary())                     //Gehalt
                .average()                                        //durchschnittlich
                .orElse(0.0);                                     //0, wenn keine zutreffende Person vorhanden ist.0

Was ist gut mit Lambda-Ausdrücken und Stream-API

Die Stream-API-Funktion wurde auch zu Java9 hinzugefügt, was sehr praktisch ist!


Lasst uns alle Kotlin schreiben! !!


Kotlin ist das Beste! !!

Recommended Posts

Was ist neu in Java 8?
Was ist neu in Java 9,10,11
Was ist neu in Apache Camel 2.19.0?
Partisierung in Java
Änderungen in Java 11
Java1.8 neue Funktionen
Umfangsrate in Java
FizzBuzz in Java
Ich habe das neue Yuan-Problem in Java ausprobiert
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Zusammenfassung der neuen Funktionen von Java 12
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
Aufrufbare Schnittstelle in Java
Zusammenfassung der neuen Funktionen von Java 13
Kommentare in der Java-Quelle
Azure funktioniert in Java
Formatieren Sie XML in Java
Einfache HTML-Spezialchars in Java
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
Verwenden Sie OpenCV mit Java
WebApi-Memorandum mit Java
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Fehler in Java ausdrücken
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8
Zusammenfassung der neuen Funktionen von Java 10
Verwenden Sie PreparedStatement in Java
Zusammenfassung der neuen Funktionen von Java 14
Parallele Ausführung in Java
Versuchen Sie es mit RocksDB mit Java
[Java] Neue Thread-Generierungsmethode (2)
Lesen Sie Binärdateien in Java 1
Vermeiden Sie den Fehler, den Yuma in Java gemacht hat
Holen Sie sich EXIF-Informationen in Java
[Neta] Sleep Sort in Java
Bearbeiten von ini in Java: ini4j
Java-Geschichte in dieser Welt
Segfo Java in 6 Zeilen
Versuchen Sie, JavaScript in Java aufzurufen
Lassen Sie uns Spresense mit Java entwickeln (1)
Probieren Sie den Funktionstyp in Java aus! ①
Ich habe ein Roulette in Java gemacht.
Neue Funktionen von Java7 bis Java8
Implementierung der zweistufigen Authentifizierung in Java
Refactoring: Machen Sie Blackjack in Java