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.

4
Wann wird eine Schnittstelle mit einer Standardmethode initialisiert?
Während sie durch die Java Language Specification Suche zu beantworten diese Frage , habe ich gelernt , dass Bevor eine Klasse initialisiert wird, muss ihre direkte Oberklasse initialisiert werden, aber von der Klasse implementierte Schnittstellen werden nicht initialisiert. In ähnlicher Weise werden die Superschnittstellen einer Schnittstelle nicht initialisiert, bevor die …


5
Warum verwendet Collections.sort Mergesort, Arrays.sort jedoch nicht?
Ich verwende JDK-8 (x64). Für Arrays.sort(Grundelemente) habe ich in der Java-Dokumentation Folgendes gefunden: Der Sortieralgorithmus ist ein Dual-Pivot- Quicksort von Vladimir Yaroslavskiy, Jon Bentley und Joshua Bloch. " Für Collections.sort(Objekte) habe ich dieses "Timsort" gefunden: Diese Implementierung ist eine stabile, adaptive, iterative Zusammenführung ... Diese Implementierung speichert die angegebene Liste …

5
Ordnungsgemäße Verwendung von Optional.ifPresent ()
Ich versuche die ifPresent()Methode der OptionalAPI in Java 8 zu verstehen . Ich habe eine einfache Logik: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Dies führt jedoch zu einem Kompilierungsfehler: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Natürlich kann ich so etwas machen: if(user.isPresent()) { doSomethingWithUser(user.get()); } Aber das ist genau wie ein …
94 java  lambda  java-8  optional 

6
Warum ist in Java 8 die Standardkapazität von ArrayList jetzt Null?
Soweit ich mich erinnere, ArrayListbetrug die Standardkapazität vor Java 8 10. Überraschenderweise sagt der Kommentar zum Standardkonstruktor (void) immer noch: Constructs an empty list with an initial capacity of ten. Von ArrayList.java: /** * Shared empty array instance used for default sized empty instances. We * distinguish this from EMPTY_ELEMENTDATA …
93 java  arraylist  java-8 

15
Java 8 Stream mit Stapelverarbeitung
Ich habe eine große Datei, die eine Liste von Elementen enthält. Ich möchte einen Stapel von Elementen erstellen und mit diesem Stapel eine HTTP-Anfrage stellen (alle Elemente werden als Parameter in der HTTP-Anfrage benötigt). Ich kann es sehr einfach mit einer forSchleife machen, aber als Java 8-Liebhaber möchte ich versuchen, …

6
Wie überprüfe ich, ob ein Java 8-Stream leer ist?
Wie kann ich überprüfen, ob a Streamleer ist, und eine Ausnahme auslösen, wenn dies nicht der Fall ist, als nicht-terminale Operation? Grundsätzlich suche ich nach etwas, das dem folgenden Code entspricht, ohne jedoch den dazwischen liegenden Stream zu materialisieren. Insbesondere sollte die Überprüfung nicht erfolgen, bevor der Stream tatsächlich von …

6
Implementierung von HashMap Java 8
Gemäß folgendem Linkdokument: Java HashMap-Implementierung Ich bin verwirrt mit der Implementierung von HashMap(oder besser gesagt einer Verbesserung in HashMap). Meine Fragen sind: zuerst static final int TREEIFY_THRESHOLD = 8; static final int UNTREEIFY_THRESHOLD = 6; static final int MIN_TREEIFY_CAPACITY = 64; Warum und wie werden diese Konstanten verwendet? Ich möchte …

3
_ (Unterstrich) ist ein reserviertes Schlüsselwort
Ich habe gerade sim folgenden Lambda-Ausdruck ersetzt durch _: s -> Integer.parseInt(s) Der Eclipse-Compiler sagt: '_' sollte nicht als Bezeichner verwendet werden, da es sich ab Quellstufe 1.8 um ein reserviertes Schlüsselwort handelt. Ich habe keine Erklärung in JLS §3.9 Lexikalische Struktur / Schlüsselwörter gefunden.
92 java  lambda  java-8 


8
Was ist der Zweck des Standardschlüsselworts in Java?
Eine Schnittstelle in Java ähnelt einer Klasse, der Hauptteil einer Schnittstelle kann jedoch nur abstrakte Methoden und finalFelder (Konstanten) enthalten. Kürzlich habe ich eine Frage gesehen, die so aussieht interface AnInterface { public default void myMethod() { System.out.println("D"); } } Gemäß der Schnittstellendefinition sind nur abstrakte Methoden zulässig. Warum kann …

3
Was ist die "Standard" -Implementierung einer in einer Schnittstelle definierten Methode?
In der Sammlungsschnittstelle habe ich eine Methode mit dem Namen gefunden removeIf(), die ihre Implementierung enthält. default boolean removeIf(Predicate<? super E> filter) { Objects.requireNonNull(filter); boolean removed = false; final Iterator<E> each = iterator(); while (each.hasNext()) { if (filter.test(each.next())) { each.remove(); removed = true; } } return removed; } Ich möchte …
91 java  interface  java-8 

6
Verwandeln Sie Java Future in eine CompletableFuture
Java 8 führt CompletableFutureeine neue Implementierung von Future ein, die zusammensetzbar ist (einschließlich einer Reihe von thenXxx-Methoden). Ich möchte dies ausschließlich verwenden, aber viele der Bibliotheken, die ich verwenden möchte, geben nur nicht zusammensetzbare FutureInstanzen zurück. Gibt es eine Möglichkeit, zurückgegebene FutureInstanzen in a zusammenzufassen, CompleteableFuturedamit ich sie zusammenstellen kann?
91 java  java-8  future 

6
Verwenden von Streams zum Sammeln in TreeSet mit einem benutzerdefinierten Komparator
Bei der Arbeit in Java 8 habe ich Folgendes TreeSetdefiniert: private TreeSet<PositionReport> positionReports = new TreeSet<>(Comparator.comparingLong(PositionReport::getTimestamp)); PositionReport ist eine ziemlich einfache Klasse, die wie folgt definiert ist: public static final class PositionReport implements Cloneable { private final long timestamp; private final Position position; public static PositionReport create(long timestamp, Position position) …

5
Warum kann ich beim Streaming von einem Array keine Ganzzahlen Zeichenfolgen zuordnen?
Dieser Code funktioniert (im Javadoc aufgenommen): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Dieser kann nicht kompiliert werden: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers = Arrays.stream(numbers) .map((Integer i) -> i.toString()) .collect(Collectors.joining(", ")); IDEA sagt mir, dass ich einen …

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.