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.
Mam problem z pełnym zrozumieniem roli, jaką combinerspełnia reducemetoda strumieniowa . Na przykład następujący kod nie kompiluje się: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, str) -> accumulatedInt + str.length()); Komunikat o błędzie kompilacji: (niezgodność argumentów; nie można przekonwertować wartości int na java.lang.String) ale ten kod się kompiluje: int length …
Jestem nowy w Javie 8. Nadal nie znam dokładnie API, ale zrobiłem mały nieformalny test porównawczy, aby porównać wydajność nowego API Streams ze starymi, dobrymi kolekcjami. Badanie polega na filtrowanie listy Integeri dla każdego numeru nawet obliczyć pierwiastek kwadratowy i przechowywanie go w rezultacie Listo Double. Oto kod: public static …
Właśnie zacząłem patrzeć na Javę 8 i wypróbować lambdy, pomyślałem, że spróbuję przepisać bardzo prostą rzecz, którą niedawno napisałem. Muszę przekształcić Map of String to Column w inną Map of String to Column, gdzie kolumna w nowej mapie jest obronną kopią kolumny z pierwszej mapy. Kolumna ma konstruktora kopiującego. Najbliższe, …
Czytam o strumieniach Java i odkrywam nowe rzeczy w trakcie. Jedną z nowych rzeczy, które znalazłem, była peek()funkcja. Prawie wszystko, co przeczytałem w Peek, mówi, że powinno się go używać do debugowania strumieni. Co by było, gdybym miał Stream, w którym każde konto ma nazwę użytkownika, pole hasła oraz metodę …
Mam List<Person>. Muszę uzyskać wartość Listz właściwości Person. Na przykład mam Personklasę: class Person { private String name; private String birthDate; public String getName() { return name; } public String getBirthDate() { return birthDate; } Person(String name) { this.name = name; } } List<Person> personList = new ArrayList<>(); personList.add(new Person("David")); …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 3 lata temu . Popraw to pytanie Zapytano mnie o to podczas wywiadu i nie jestem przekonany, że udzieliłem …
Obecnie zawsze, gdy muszę utworzyć strumień z tablicy, robię to String[] array = {"x1", "x2"}; Arrays.asList(array).stream(); Czy istnieje bezpośredni sposób tworzenia strumienia z tablicy?
Jak zdobyć pierwszy element spełniający kryteria w strumieniu? Próbowałem tego, ale nie działa this.stops.stream().filter(Stop s-> s.getStation().getName().equals(name)); Kryteria te nie działają, metoda filtru jest wywoływana w klasie innej niż Stop. public class Train { private final String name; private final SortedSet<Stop> stops; public Train(String name) { this.name = name; this.stops = …
Chciałbym zduplikować strumień Java 8, abym mógł sobie z tym poradzić dwa razy. Mogę collectjako listę i uzyskać z tego nowe strumienie; // doSomething() returns a stream List<A> thing = doSomething().collect(toList()); thing.stream()... // do stuff thing.stream()... // do other stuff Ale wydaje mi się, że powinien być bardziej wydajny / …
Jak mogę uzyskać ostatni element strumienia lub listy w poniższym kodzie? Gdzie data.careasjest List<CArea>: CArea first = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal).findFirst().get(); CArea last = data.careas.stream() .filter(c -> c.bbox.orientationHorizontal) .collect(Collectors.toList()).; //how to? Jak widać zdobycie pierwszego elementu, z pewnym filter, nie jest trudne. Jednak uzyskanie ostatniego elementu w jednolinijce to prawdziwy …
Co to jest funkcjonalny interfejs Java 8 dla metody, która nic nie pobiera i nic nie zwraca? To znaczy odpowiednik C # bez parametrów Actionz voidtypem zwracanym?
Biorąc pod uwagę strumień, taki jak { 0, 1, 2, 3, 4 }, jak mogę najbardziej elegancko nadać mu daną formę: { new Pair(0, 1), new Pair(1, 2), new Pair(2, 3), new Pair(3, 4) } (zakładając oczywiście, że zdefiniowałem parę klas)? Edycja: nie dotyczy to wyłącznie ints ani strumieni pierwotnych. …
Jak mogę sprawdzić, czy a Streamjest puste i zgłosić wyjątek, jeśli tak nie jest, jako operacja nieterminalowa? Zasadniczo szukam czegoś równoważnego z poniższym kodem, ale bez materializacji strumienia pomiędzy. W szczególności sprawdzenie nie powinno mieć miejsca przed faktycznym zużyciem strumienia przez operację terminala. public Stream<Thing> getFilteredThings() { Stream<Thing> stream = …
Mam duży plik zawierający listę pozycji. Chciałbym utworzyć partię pozycji, wykonać żądanie HTTP z tą partią (wszystkie pozycje są potrzebne jako parametry w żądaniu HTTP). Mogę to zrobić bardzo łatwo za pomocą forpętli, ale jako miłośnik Java 8 chcę spróbować napisać to za pomocą frameworka Stream Java 8 (i czerpać …
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.