Użyj tego tagu w przypadku pytań związanych z korzystaniem z interfejsu API Stream. Został wprowadzony w Javie 8 i obsługuje operacje w stylu funkcjonalnym na strumieniach wartości, takich jak potoki filtruj-mapuj-zmniejszaj w kolekcjach.
Bawię się leniwymi operacyjnymi funkcjami w Javie SE 8 i chcę mapindeksować ido pary / krotki (i, value[i]), a następnie filterbazować na drugim value[i]elemencie, a na koniec wyprowadzać tylko indeksy. Czy nadal muszę cierpieć z tego powodu: Jaki jest odpowiednik pary C ++ <L, R> w Javie? w nowej, odważnej …
Używam java lambda do sortowania listy. jak mogę to posortować w odwrotny sposób? Widziałem ten post , ale chcę użyć java 8 lambda. Oto mój kod (użyłem * -1) jako hack Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator<File>() { public int compare(File o1, File o2) { int answer; if (o1.lastModified() …
W Javie 8 istnieje Stream.collectmożliwość agregacji zbiorów. W Kotlinie nie istnieje to w ten sam sposób, poza tym, że może być zbiorem funkcji rozszerzenia w stdlib. Ale nie jest jasne, jakie są odpowiedniki dla różnych przypadków użycia. Na przykład na górze JavaDocCollectors znajdują się przykłady napisane dla Java 8, a …
Mam kolekcję BigDecimals (w tym przykładzie a LinkedList), którą chciałbym dodać. Czy można do tego wykorzystać strumienie? Zauważyłem, że Streamklasa ma kilka metod Stream::mapToInt Stream::mapToDouble Stream::mapToLong Z których każdy ma wygodną sum()metodę. Ale, jak wiemy, floati doublearytmetyka jest prawie zawsze zły pomysł. Czy jest więc wygodny sposób podsumowania BigDecimals? To …
Załóżmy, że mam klasę i metodę class A { void foo() throws Exception() { ... } } Teraz chciałbym wywołać foo dla każdej instancji Adostarczonej przez strumień: void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } Pytanie: Jak prawidłowo obsłużyć wyjątek? Kod nie kompiluje się na …
Mogę dodać strumienie lub dodatkowe elementy, na przykład: Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)); I mogę dodawać nowe rzeczy na bieżąco, na przykład: Stream stream = Stream.concat( Stream.concat( stream1.filter(x -> x!=0), stream2) .filter(x -> x!=1), Stream.of(element)) .filter(x -> x!=2); Ale to jest brzydkie, ponieważ concatjest statyczne. Gdyby concatbyła to metoda …
Załóżmy, że mam metodę, która zwraca widok tylko do odczytu do listy członków: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Ponadto przypuśćmy, że wszystko, co robi klient, to powtórzenie …
Czy można przesyłać strumień w Javie 8? Powiedzmy, że mam listę obiektów, mogę zrobić coś takiego, aby odfiltrować wszystkie dodatkowe obiekty: Stream.of(objects).filter(c -> c instanceof Client) Po tym jednak, jeśli chcę coś zrobić z klientami, musiałbym obsadzić każdego z nich: Stream.of(objects).filter(c -> c instanceof Client) .map(c -> ((Client) c).getID()).forEach(System.out::println); To …
Javadoc of Collector pokazuje, jak zbierać elementy strumienia do nowej listy. Czy istnieje jedna linijka, która dodaje wyniki do istniejącej tablicy ArrayList?
Pytanie ogólne: Jaki jest właściwy sposób odwrócenia strumienia? Zakładając, że nie wiemy, z jakiego typu elementów składa się strumień, jaki jest ogólny sposób odwrócenia dowolnego strumienia? Konkretne pytanie: IntStreamzapewnia metodę zakresu do generowania liczb całkowitych w określonym zakresie IntStream.range(-range, 0), teraz, gdy chcę to odwrócić, przełączanie zakresu od 0 do …
W JDK 8 z lambdą b93 istniała klasa java.util.stream.Streams.zip w b93, która mogłaby zostać użyta do zip strumieni (jest to zilustrowane w samouczku Exploring Java8 Lambdas. Part 1 autorstwa Dhananjay Nene ). Ta funkcja: Tworzy leniwy i sekwencyjny połączony Stream, którego elementy są wynikiem połączenia elementów dwóch strumieni. Jednak w …
Chcę przetwarzać listy wewnątrz XMLobiektu Java. Muszę zadbać o przetworzenie wszystkich elementów w celu ich otrzymania. Czy powinienem zatem dzwonić sequentialdo każdego, streamktórego używam? list.stream().sequential().filter().forEach() Czy wystarczy po prostu użyć strumienia, o ile nie używam równoległości? list.stream().filter().forEach()
Mam zestaw danych reprezentowany przez strumień Java 8: Stream<T> stream = ...; Widzę, jak to przefiltrować, aby uzyskać losowy podzbiór - na przykład Random r = new Random(); PrimitiveIterator.OfInt coin = r.ints(0, 2).iterator(); Stream<T> heads = stream.filter((x) -> (coin.nextInt() == 0)); Widzę również, jak mogę zredukować ten strumień, aby uzyskać …
Czy strumienie Java 8 są podobne do obserwacji RxJava? Definicja strumienia Java 8: Klasy w nowym java.util.streampakiecie udostępniają interfejs API Stream do obsługi operacji w stylu funkcjonalnym na strumieniach elementów.
Kiedy użyjesz collect()vs reduce()? Czy ktoś ma dobre, konkretne przykłady, kiedy zdecydowanie lepiej jest iść w jedną lub drugą stronę? Javadoc wspomina, że metoda collect () jest modyfikowalną redukcją . Biorąc pod uwagę, że jest to redukcja zmienna, zakładam, że wymaga synchronizacji (wewnętrznej), co z kolei może mieć negatywny wpływ …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.