I\'m trying to generate Order instances using the Stream API. I have a factory function that creates the order, and a DoubleStream is used to initialize the amount of the o
As said in other answers, Stream
s are single-use items and you have to create a new Stream
each time you need one.
But, after all, this isn’t complicated when you remove all your attempts to store intermediate results. Your entire code can be expressed as:
Random r=new Random(); // the only stateful thing to remember
// defining and executing the chain of operations:
r.doubles(50.0, 200.0).mapToObj(Order::new).limit(10).forEach(System.out::println);
or even simpler
r.doubles(10, 50.0, 200.0).mapToObj(Order::new).forEach(System.out::println);