Als «java-stream» getaggte Fragen

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.

5
Warum gibt Stream.allMatch () für einen leeren Stream true zurück?
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 …

5
Wie kann ich einen Java 8-Stream in einer Guava ImmutableCollection sammeln?
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 …

3
forEach vs forEachOrdered in Java 8 Stream
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.

4
Wie behalte ich die Iterationsreihenfolge einer Liste bei, wenn Collections.toMap () in einem Stream verwendet wird?
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 ?

9
Java 8: Formatieren von Lambda mit Zeilenumbrüchen und Einrückungen
Was ich mit Lambda-Einrückung erreichen möchte, ist Folgendes: Mehrzeilige Anweisung: String[] ppl = new String[] { "Karen (F)", "Kevin (M)", "Lee (M)", "Joan (F)", "Des (M)", "Rick (M)" }; List<String> strings = Arrays.stream(ppl) .filter( (x) -> { return x.contains("(M)"); } ).collect(Collectors.toList()); strings.stream().forEach(System.out::println); Einzeilige Anweisung: List<String> strings = Arrays.stream(ppl) .map((x) -> …

10
Java 8: Bevorzugte Methode zum Zählen von Iterationen eines Lambda?
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 …


3
Java 8: Listen mit Stream-API zusammenführen
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?

6
So erstellen Sie eine neue Liste mit einer Eigenschaft eines Objekts, das sich in einer anderen Liste befindet
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?

3
Überprüfen Sie die Instanz im Stream
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?

3
Collectors.toMap () keyMapper - prägnanter Ausdruck?
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, …


4
takeWhile () arbeitet anders mit flatmap
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 …



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.