Als «java-8» getaggte Fragen

Verwenden Sie dieses Tag für Fragen zu Java 8, Version 8 (interne Nummer 1.8) der Java-Plattform, die am 18. März 2014 veröffentlicht wurde. In den meisten Fällen sollten Sie auch das Java-Tag angeben.

7
Wie konvertiere ich einen Iterator in einen Stream?
Ich suche nach einer prägnanten Möglichkeit, einen Iteratorin einen Streamoder genauer zu konvertieren, um den Iterator als Stream "anzuzeigen". Aus Leistungsgründen möchte ich eine Kopie des Iterators in einer neuen Liste vermeiden: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); Aufgrund einiger …
468 java  iterator  java-8 

8
Java 8 Iterable.forEach () vs foreach-Schleife
Overа этот вопрос есть ответы на Stapelüberlauf на русском : Цикл foreach против Iterable.foreach в Java 8: что лучше? Welche der folgenden Methoden ist in Java 8 besser geeignet? Java 8: joins.forEach(join -> mIrc.join(mSession, join)); Java 7: for (String join : joins) { mIrc.join(mSession, join); } Ich habe viele for-Schleifen, …

27
Java 8 Nach Eigenschaft unterscheiden
Wie kann ich in Java 8 eine Sammlung mithilfe der StreamAPI filtern, indem ich die Unterscheidbarkeit einer Eigenschaft jedes Objekts überprüfe? Zum Beispiel habe ich eine Liste von PersonObjekten und möchte Personen mit demselben Namen entfernen. persons.stream().distinct(); Verwendet die Standard-Gleichheitsprüfung für ein PersonObjekt, also brauche ich so etwas wie: persons.stream().distinct(p …

14
Abrufen einer Liste aus einem java.util.stream.Stream in Java 8
Ich habe mit Java 8 Lambdas herumgespielt, um Sammlungen einfach zu filtern. Ich habe jedoch keinen präzisen Weg gefunden, um das Ergebnis als neue Liste innerhalb derselben Anweisung abzurufen. Hier ist mein bisher prägnantester Ansatz: List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List<Long> targetLongList = new …



18
Warum sollte Java 8's Optional nicht in Argumenten verwendet werden?
Ich habe auf vielen Websites gelesen. Optional sollte nur als Rückgabetyp verwendet und nicht in Methodenargumenten verwendet werden. Ich kämpfe darum, einen logischen Grund dafür zu finden. Zum Beispiel habe ich eine Logik, die 2 optionale Parameter hat. Daher halte ich es für sinnvoll, meine Methodensignatur wie folgt zu schreiben …
392 java  java-8  optional 

22
Gibt es eine präzise Möglichkeit, einen Stream mit Indizes in Java 8 zu durchlaufen?
Gibt es eine übersichtliche Möglichkeit, einen Stream zu durchlaufen, während Sie Zugriff auf den Index im Stream haben? String[] names = {"Sam","Pamela", "Dave", "Pascal", "Erik"}; List<String> nameList; Stream<Integer> indices = intRange(1, names.length).boxed(); nameList = zip(indices, stream(names), SimpleEntry::new) .filter(e -> e.getValue().length() <= e.getKey()) .map(Entry::getValue) .collect(toList()); Das scheint ziemlich enttäuschend im Vergleich …
382 java  java-8  java-stream 






5
Warum ist "final" in Java 8-Schnittstellenmethoden nicht zulässig?
Eine der nützlichsten Funktionen von Java 8 sind die neuen defaultMethoden für Schnittstellen. Es gibt im Wesentlichen zwei Gründe (es kann andere geben), warum sie eingeführt wurden: Bereitstellung der tatsächlichen Standardimplementierungen. Beispiel:Iterator.remove() Berücksichtigung der JDK-API-Evolution. Beispiel:Iterable.forEach() Aus Sicht eines API-Designers hätte ich gerne andere Modifikatoren für Schnittstellenmethoden verwenden können, z …

12
So negieren Sie ein Methodenreferenzprädikat
In Java 8 können Sie eine Methodenreferenz verwenden, um einen Stream zu filtern, zum Beispiel: Stream<String> s = ...; long emptyStrings = s.filter(String::isEmpty).count(); Gibt es eine Möglichkeit, eine Methodenreferenz zu erstellen, die die Negation einer vorhandenen ist, dh so etwas wie: long nonEmptyStrings = s.filter(not(String::isEmpty)).count(); Ich könnte die notMethode wie …
330 java  predicate  java-8  negate 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.