Stavo giocando con lambda Java 8 per filtrare facilmente le raccolte. Ma non ho trovato un modo conciso per recuperare il risultato come un nuovo elenco all'interno della stessa istruzione. Ecco il mio approccio più conciso finora:
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);
Gli esempi in rete non hanno risposto alla mia domanda perché si fermano senza generare un nuovo elenco di risultati. Deve esserci un modo più conciso. Mi sarei aspettato, che la Streamclasse ha metodi come toList(), toSet(), ...
C'è un modo in cui le variabili targetLongListpossono essere assegnate direttamente dalla terza riga?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongListseguito,Collection.removeIf(…)per comodità.