Spesso capita di dover convertire una lista di oggetti di un tipo T1 in un’altra lista di oggetti di tipo T2. La soluzione in stile imperativo ti porta a scorrere la lista di oggetti di tipo T1, creare gli oggetti di tipo T2, popolarli e aggiungerli alla lista di destinazione. Con l’uso degli stream e delle lambda expression questa operazione si fà con una riga di codice:
List<T1> listaSorgente = ..... List<T2> listaDestinazione = IntStream.range(0, listaSorgente.size()).mapToObj(i -> new T2(listaSorgente.get(i))).collect(Collectors.toList());