super estrella secreta:
¿Cómo se sustituye el Supplier
código aquí con la expresión lambda
IntStream inStream = Stream.generate(new Supplier<Integer>() {
int x= 1;
@Override
public Integer get() {
return x++ ;
}
}).limit(10).mapToInt(t -> t.intValue());
inStream.forEach(System.out::println);
La salida de la pieza anterior de código es:
1
2
3
4
5
6
7
8
9
10
también:
Algo como esto si usted está obligado a utilizar Stream.generate
específicamente:
IntStream inStream = Stream.generate(new AtomicInteger(1)::getAndIncrement)
.limit(10)
.mapToInt(t -> t);
inStream.forEach(System.out::println);
Editar : El usoIntStream.generate
, se puede llevar a cabo como
IntStream.generate(new AtomicInteger(1)::getAndIncrement).limit(10);
Nota : Una mejor solución en términos de diseño de la API sin duda sería hacer uso deStream.iterate
un caso tal uso.