[英]Populate list of multiples using stream
有沒有辦法使用 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());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.