Usare i numeric Stream in Java
In Java esistono i numeric Stream, creati per avere gli Stream sui tipi primitivi:
- IntStream
- LongStream
- DoubleStream
Questi mettono a disposizione dei metodi specifici; ovviamente è possibile ottenere lo stesso risultato usando la versione boxed di Stream.
Però può valere la pena dargli un'occhiata.
Partiamo dal caso più pratico, sommare tutti i valori.
Questo è il codice usando Stream:
System.out.println(Stream.of(1, 2, 3, 4, 5).reduce(0, Integer::sum));
Questo invece usando IntStream:
System.out.println(IntStream.of(1, 2, 3, 4, 5).sum());
Altri due metodi interessanti sono rangeClosed e mapToObj: il primo crea un IntStream da un range, il secondo converte ogni elemento in un Object.
Ecco un esempio:
IntStream.rangeClosed(1, 5).mapToObj(String::valueOf).forEach(System.out::println);
Per essere precisi, esiste anche range, che esclude l'ultimo valore della lista.
Insomma, dategli un'occhiata perchè può essere utile.
Enjoy!
java stream intstream doublestream longstream
Commentami!