@KarlRichter Drugie pytanie nie daje ci wpisanej listy. To pytanie było także cztery lata temu i ma ponad 300 pozytywnych opinii. Dlaczego próbujemy to teraz połączyć?
Ta boxedmetoda przekształca intprymitywne wartości IntStreamw strumień Integerobiektów. Słowo „boks” nazywa proces konwersji int⬌ Integer. Zobacz samouczek Oracle .
@skiwi Mam na myśli, że wszystkie pozostałe odpowiedzi są niepotrzebne, ponieważ nie byłyby tak naturalne.
Dmitry Ginzburg
1
Dziękuję, nie widziałem jeszcze metody pudełkowej i działała jak urok.
twreid
Dodanie: Myślę, że ten kod staje się trochę krótszy, wyraźniejszy i ładniejszy, jeśli używasz importu statycznego toList. Odbywa się to poprzez umieszczenie następujących wśród importu pliku: static import java.util.stream.Collectors.toList;. Następnie połączenie odbiera tylko .collect(toList()).
Lii
1
W środowisku Eclipse możliwe jest, aby IDE dodało statyczny import metod. Odbywa się to poprzez dodanie Collectorsklasy w Preferencjach -> Java -> Edytor -> Content Assist -> Ulubione . Następnie wystarczy wpisać toLiw Ctr + Spacja, aby wypełnić IDE toListi dodać import statyczny.
Lii
2
Odrywałem włosy od tego, co było nie tak z tym, czego próbowałem, dziękuję za zwrócenie uwagi na tę boxed()część
K Raphael,
16
Możesz także użyć mapToObj () w strumieniu, który pobiera IntFunkcję i zwraca obiektowy strumień składający się z wyników zastosowania danej funkcji do elementów tego strumienia.
Uwaga: Trzeci parametr jest wymagany tylko wtedy, gdy chcesz uruchomić równoległą kolekcję; do zbierania sekwencyjnego wystarczy podać tylko dwa pierwsze.
Odpowiedzi:
IntStream::boxed
IntStream::boxed
zamienia anIntStream
wStream<Integer>
, a następniecollect
wList
:Ta
boxed
metoda przekształcaint
prymitywne wartościIntStream
w strumieńInteger
obiektów. Słowo „boks” nazywa proces konwersjiint
⬌Integer
. Zobacz samouczek Oracle .źródło
toList
. Odbywa się to poprzez umieszczenie następujących wśród importu pliku:static import java.util.stream.Collectors.toList;
. Następnie połączenie odbiera tylko.collect(toList())
.Collectors
klasy w Preferencjach -> Java -> Edytor -> Content Assist -> Ulubione . Następnie wystarczy wpisaćtoLi
w Ctr + Spacja, aby wypełnić IDEtoList
i dodać import statyczny.boxed()
częśćMożesz także użyć mapToObj () w strumieniu, który pobiera IntFunkcję i zwraca obiektowy strumień składający się z wyników zastosowania danej funkcji do elementów tego strumienia.
źródło
boxed()
deleguje.Możesz używać prymitywnych kolekcji dostępnych w Eclipse Collections i unikać boksu.
Uwaga: Jestem współtwórcą kolekcji Eclipse.
źródło
MutableIntList list = IntLists.mutable.withAll(IntStream.range(1, 5))
Znajdź następujący przykład znajdowania kwadratu każdego elementu int za pomocą Java 8: -
źródło
Możesz użyć metody zbierania:
W rzeczywistości jest to prawie dokładnie to, co robi Java, gdy wywołujesz .collect (Collectors.toList ()) w strumieniu obiektów:
Uwaga: Trzeci parametr jest wymagany tylko wtedy, gdy chcesz uruchomić równoległą kolekcję; do zbierania sekwencyjnego wystarczy podać tylko dwa pierwsze.
źródło