我有这个函数接收一个整数作为参数。其目的是返回列表中所有偶数的平方和。
例如,如果 n = 7 - >返回56。
private static int myFunction (int n) {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7);
return list.stream().filter( x -> x % 2 == 0) //Even numbers
.map(x -> x * x) //Squared
.reduce(0, (x,y) -> x + y);//Sum
}
如果没有 for-loop ,我想做的是这样的事情:
List<Integer> list = Arrays.asList(1,...,n);
作为Haskell中的一个示例,您可以使用“ .. ”创建一个从1到n的列表:
listToN :: Int -> [Int]
listToN n = [1 .. n]
如果[1,2,3,4,5,6,7]
n == 7
答案 0 :(得分:3)
好像您正在寻找IntStream.rangeClosed(1,7)
。
如果有专门的方法(通过reduce
完全按照你的方式执行),顺便说一下,不要使用reduce
IntStream.range(1, n)
.filter(x -> x % 2 == 0)
.map(x -> x * x)
.sum();