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.
Ich spiele mit faulen Funktionsoperationen in Java SE 8 herum und möchte map einen Index ifür ein Paar / Tupel erstellen (i, value[i]), dann filterbasierend auf dem zweiten value[i]Element, und schließlich nur die Indizes ausgeben. Muss ich noch darunter leiden: Was entspricht dem C ++ - Paar <L, R> in …
Wenn ich eine Sammlung mit dem neuen syntaktischen Zucker von Java 8 durchlaufe, wie z myStream.forEach(item -> { // do something useful }); Entspricht dies nicht dem folgenden "alten Syntax" -Schnipsel? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); Bedeutet dies, dass Consumerjedes …
Ich benutze Java Lambda, um eine Liste zu sortieren. Wie kann ich es umgekehrt sortieren? Ich habe diesen Beitrag gesehen , möchte aber Java 8 Lambda verwenden. Hier ist mein Code (ich habe * -1 verwendet) als Hack Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator<File>() { public int compare(File o1, …
In Java 8 gibt Stream.collectes Aggregationen für Sammlungen. In Kotlin existiert dies nicht auf die gleiche Weise, außer vielleicht als Sammlung von Erweiterungsfunktionen in der stdlib. Es ist jedoch nicht klar, welche Äquivalenzen für verschiedene Anwendungsfälle gelten. Am oberen Rand des JavaDoc fürCollectors befinden sich beispielsweise Beispiele für Java 8, …
Ich habe eine Sammlung von BigDecimals (in diesem Beispiel a LinkedList), die ich zusammenfügen möchte. Ist es möglich, dafür Streams zu verwenden? Mir ist aufgefallen, dass die StreamKlasse mehrere Methoden hat Stream::mapToInt Stream::mapToDouble Stream::mapToLong Jedes davon hat eine bequeme sum()Methode. Aber, wie wir wissen, floatund doubleArithmetik ist fast immer eine …
Angenommen, ich habe eine Klasse und eine Methode class A { void foo() throws Exception() { ... } } Jetzt möchte ich foo für jede Avon einem Stream gelieferte Instanz aufrufen wie: void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } Frage: Wie gehe ich mit …
Dies ist ein reales Beispiel aus einer Bibliotheks-API eines Drittanbieters, jedoch vereinfacht. Kompiliert mit Oracle JDK 8u72 Betrachten Sie diese beiden Methoden: <X extends CharSequence> X getCharSequence() { return (X) "hello"; } <X extends String> X getString() { return (X) "hello"; } Beide melden eine Warnung "ungeprüfte Besetzung" - ich …
Ich versuche, in der Java 8-Stream-API einen einfachen Weg zu finden, um die Gruppierung durchzuführen. Ich komme mit diesem komplexen Weg heraus! List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, List<String>> collect = list.stream().collect( Collectors.groupingBy(o -> o)); System.out.println(collect); List<String[]> collect2 = collect .entrySet() .stream() .map(e -> new String[] { …
Was genau macht ich beim Durchsuchen eines Codes, der auf den Pfeiloperator gestoßen ist? Ich dachte, Java hätte keinen Pfeiloperator. return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); }); Details : Java 6, Apache Commons Collection, IntelliJ 12 Update / Antwort: Es stellt sich heraus, dass IntelliJ 12 …
Ich habe ein Problem beim Ausprobieren der Lambda-Ausdrücke von Java 8. Normalerweise funktioniert es gut, aber jetzt habe ich Methoden, die werfen IOException. Am besten sehen Sie sich den folgenden Code an: class Bank{ .... public Set<String> getActiveAccountNumbers() throws IOException { Stream<Account> s = accounts.values().stream(); s = s.filter(a -> a.isActive()); …
Ich versuche, eine java.lang.function.Functionin meiner Java 8-Codebasis zu verwenden, erhalte jedoch weiterhin den folgenden Fehler in Intellij. Verwendung der als @since 1.6+ dokumentierten API Bei dieser Überprüfung werden alle Verwendungen von Methoden ermittelt, deren Dokumentation das @since-Tag enthält. Dies kann nützlich sein, wenn die Entwicklung unter einer neueren SDK-Version als …
Ich kann Streams oder zusätzliche Elemente wie folgt hinzufügen: Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)); Und ich kann im Laufe der Zeit neue Dinge hinzufügen: Stream stream = Stream.concat( Stream.concat( stream1.filter(x -> x!=0), stream2) .filter(x -> x!=1), Stream.of(element)) .filter(x -> x!=2); Aber das ist hässlich, weil concates statisch ist. Wenn …
Java 8 führt wichtige neue Sprachfunktionen wie Lambda-Ausdrücke ein. Gehen diese Änderungen in der Sprache mit solchen signifikanten Änderungen im kompilierten Bytecode einher, die verhindern würden, dass er auf einer virtuellen Java 7-Maschine ohne Verwendung eines Retrotranslators ausgeführt wird?
Angenommen, ich habe eine Methode, die eine schreibgeschützte Ansicht in eine Mitgliederliste zurückgibt: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Angenommen, der Client durchläuft die Liste nur einmal und …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.