Bawiłem się lambdami Java 8, 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ż zatrzymały się bez wygenerowania nowej listy wyników. Musi być bardziej zwięzły sposób. Liczyłam, że Streamklasa ma sposobów toList(), toSet()...
Czy istnieje sposób, aby zmienne targetLongListmożna przypisać bezpośrednio w trzecim wierszu?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongListpóźniej, jestCollection.removeIf(…)dla wygody.