Java 8 functional:如何计算对象的依赖演化列表?

Java 8 functional:如何计算对象的依赖演化列表?,java,functional-programming,java-8,java-stream,Java,Functional Programming,Java 8,Java Stream,我想用streams和lambda以函数的方式编写以下代码: Thing thing = new Thing(); List<Thing> things = new ArrayList<>(); things.add(thing); for (int i = 0; i < 100; i++) { thing = computeNextValue(thing); things.add(thing); } Thing Thing=新事物(); Lis

我想用streams和lambda以函数的方式编写以下代码:

Thing thing = new Thing();
List<Thing> things = new ArrayList<>();
things.add(thing);

for (int i = 0; i < 100; i++) {
    thing = computeNextValue(thing);
    things.add(thing);
}
Thing Thing=新事物();
List things=new ArrayList();
事物。添加(事物);
对于(int i=0;i<100;i++){
thing=computeNextValue(thing);
事物。添加(事物);
}
在这方面有些东西

Supplier<Thing> initial = Thing::new;
List<Things> things = IntStream.range(0, 100).???(...).collect(toList());
Supplier initial=Thing::new;
List things=IntStream.range(01100)。??(…).collect(toList());
List things=Stream.iterate(newthing(),t->computeNextValue(t))
.limit(100).collect(collector.toList());
您还可以使用
t->computeNextValue(t)
的方法引用

如果
computeNextValue
是一种
static
方法,则将
t->computeNextValue(t)
替换为
ContainingClass::computeNextValue
,否则使用
this::computeNextValue

List<Thing> things = Stream.iterate(new Thing(), t->computeNextValue(t))
                           .limit(100).collect(Collectors.toList());