Verwenden Sie dieses Tag für Fragen zur Verwendung der Stream-API. Es wurde in Java 8 eingeführt und unterstützt funktionale Operationen für Werteströme, z. B. Pipelines zum Reduzieren von Filterkarten in Sammlungen.
Mein Kollege und ich hatten einen Fehler, der auf unserer Annahme beruhte, dass ein leerer Stream-Aufruf zurückkehren allMatch()würde false. if (myItems.allMatch(i -> i.isValid()) { //do something } Natürlich ist es unsere Schuld, Dokumentation anzunehmen und nicht zu lesen. Was ich jedoch nicht verstehe, ist, warum das Standardverhalten allMatch()für einen leeren …
Ich möchte Folgendes tun: List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); aber in einer Weise, dass die resultierende Liste eine Implementierung von Guava ist ImmutableList. Ich weiß, ich könnte es tun List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); List<Integer> immutableList = ImmutableList.copyOf(list); aber ich möchte es direkt sammeln. ich habe es versucht List<Integer> list …
Ich verstehe, dass diese Methoden die Ausführungsreihenfolge unterscheiden, aber in all meinen Tests kann ich keine unterschiedliche Ausführungsreihenfolge erreichen. Beispiel: System.out.println("forEach Demo"); Stream.of("AAA","BBB","CCC").forEach(s->System.out.println("Output:"+s)); System.out.println("forEachOrdered Demo"); Stream.of("AAA","BBB","CCC").forEachOrdered(s->System.out.println("Output:"+s)); Ausgabe: forEach Demo Output:AAA Output:BBB Output:CCC forEachOrdered Demo Output:AAA Output:BBB Output:CCC Bitte geben Sie Beispiele an, wenn 2 Methoden unterschiedliche Ausgaben erzeugen.
Ich erstelle ein Mapaus einem Listwie folgt: List<String> strings = Arrays.asList("a", "bb", "ccc"); Map<String, Integer> map = strings.stream() .collect(Collectors.toMap(Function.identity(), String::length)); Ich möchte die gleiche Iterationsreihenfolge wie in der beibehalten List. Wie kann ich LinkedHashMapmit den Collectors.toMap()Methoden eine erstellen ?
Ich habe oft das gleiche Problem. Ich muss die Läufe eines Lambda für die Verwendung außerhalb des Lambda zählen. Z.B: myStream.stream().filter(...).forEach(item->{ ... ; runCount++); System.out.println("The lambda ran "+runCount+"times"); Das Problem ist, dass runCount endgültig sein muss, daher kann es kein int sein. Es kann keine Ganzzahl sein, da dies unveränderlich …
Angenommen, Sie haben eine Klasse Obj class Obj{ int field; } und dass Sie eine Liste von ObjInstanzen haben, dh List<Obj> lst. Wie kann ich nun in Java8 mit Streams die Summe der Werte der int-Felder fieldaus den Objekten in der Liste lstunter einem Filterkriterium finden (z. B. für ein …
Ich habe die folgende Situation Map<Key, ListContainer> map; public class ListContainer{ List<AClass> lst; } Ich muss alle Listen lstaus den ListContainerObjekten einer MapKarte zusammenführen. public static void main(String args[]){ List<AClass> alltheObjectsAClass = map.values().stream(). // continue.... } Irgendeine Idee, wie man die Java 8-Stream-API verwendet?
Stellen Sie sich vor, ich habe eine Liste bestimmter Objekte: List<Student> Und ich muss eine andere Liste erstellen, einschließlich der idsvon Studentsin der obigen Liste: List<Integer> Ist es möglich, eine Schleife zu vermeiden, indem Apache-Sammlungen oder Guaven verwendet werden ? Welche Methoden sollten für meinen Fall nützlich sein?
Ich habe folgenden Ausdruck: scheduleIntervalContainers.stream() .filter(sic -> ((ScheduleIntervalContainer) sic).getStartTime() != ((ScheduleIntervalContainer)sic).getEndTime()) .collect(Collectors.toList()); ... wo scheduleIntervalContainershat Elementtyp ScheduleContainer: final List<ScheduleContainer> scheduleIntervalContainers Ist es möglich, den Typ vor dem Filter zu überprüfen?
Ich versuche, im folgenden Collectors.toMap()Aufruf einen prägnanteren Ausdruck für den Funktionsparameter "keyMapper" zu finden : List<Person> roster = ...; Map<String, Person> map = roster .stream() .collect( Collectors.toMap( new Function<Person, String>() { public String apply(Person p) { return p.getLast(); } }, Function.<Person>identity())); Es scheint, dass ich in der Lage sein sollte, …
Stream hat keine last()Methode: Stream<T> stream; T last = stream.last(); // No such method Was ist der eleganteste und / oder effizienteste Weg, um das letzte Element zu erhalten (oder null für einen leeren Stream)?
Ich erstelle mit takeWhile Snippets, um die Möglichkeiten zu erkunden. In Verbindung mit flatMap entspricht das Verhalten nicht den Erwartungen. Das Code-Snippet finden Sie unten. String[][] strArray = {{"Sample1", "Sample2"}, {"Sample3", "Sample4", "Sample5"}}; Arrays.stream(strArray) .flatMap(indStream -> Arrays.stream(indStream)) .takeWhile(ele -> !ele.equalsIgnoreCase("Sample4")) .forEach(ele -> System.out.println(ele)); Tatsächliche Ausgabe: Sample1 Sample2 Sample3 Sample5 Erwartete …
Vielleicht ist das sehr einfach, aber ich bin ein Neuling in Java 8-Funktionen und weiß nicht, wie ich das erreichen soll. Ich habe diese einfache Zeile, die den folgenden Text enthält: "Schlüssel, Name" und ich möchte diese Zeile in ein String-Array konvertieren und jeden Wert durch das Komma (,) trennen. …
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.