使用流填充倍数列表



有没有一种方法可以使用stream((以Java 8声明性风格编写这个方法?

public List<Integer> getFives(int numberOfElements, int incrementNum) {
List<Integer> list;
int value = incrementNum;
list.add(value);
for (int i = 0; i < numberOfElements; i++) {
value = value + incrementNum;
list.add(value);
}
return list;
}

有很多方法可以实现您想要的,其中之一就是使用Intstream#iterate:

public static  List<Integer> getFives(int numberOfElements, int incrementNum) {    
return IntStream.iterate(incrementNum, i -> i+incrementNum)
.limit(numberOfElements)
.boxed()
.collect(Collectors.toList());
}

您似乎在寻找倍数作为:

public List<Integer> getMultiples(int numberOfElements, int incrementNum) {
return IntStream.rangeClosed(1, numberOfElements)
.mapToObj(i -> i * incrementNum)
.collect(Collectors.toList());
}

最新更新