Pobieranie listy z java.util.stream.Stream w Javie 8
Bawiłem się z Java 8 lambdami, aby łatwo filtrować kolekcje. Ale nie znalazłem zwięzłego sposobu na uzyskanie wyniku jako nowej listy w ramach tej samej instrukcji. Oto moje najbardziej zwięzłe podejście do tej pory:
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
Przykłady w sieci nie odpowiedziały na moje pytanie, ponieważ zatrzymują się bez generowania nowej listy wyników. Musi być bardziej zwięzły sposób. Spodziewałbym się, żeStream
klasa ma metody takie jaktoList()
, toSet()
,…
Czy istnieje sposób, w jaki zmiennetargetLongList
można bezpośrednio przypisać trzecią linię?