Java 为什么p1的默认值设置为0并且每次递增1

Java 为什么p1的默认值设置为0并且每次递增1,java,arrays,lambda,integer,Java,Arrays,Lambda,Integer,当我运行下面的简单代码段时 Integer[] one = new Integer[10]; Arrays.setAll(one, p1 -> p1 * p1); System.out.println(Arrays.toString(one)); 返回的结果是 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 这意味着p1的默认值从0开始,每次递增1。我只是想知道为什么默认行为是这样设置的,我在哪里可以找到关于这种默认行为的更多信息?您正在使用setAll(

当我运行下面的简单代码段时

Integer[] one = new Integer[10];

Arrays.setAll(one, p1 -> p1 * p1);

System.out.println(Arrays.toString(one));
返回的结果是

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

这意味着
p1
的默认值从0开始,每次递增1。我只是想知道为什么默认行为是这样设置的,我在哪里可以找到关于这种默认行为的更多信息?

您正在使用
setAll(int[]数组,IntUnaryOperator生成器)
方法,该方法将传递的一元运算符应用于数组的索引

因此

从Javadoc:

生成器接受索引并生成该位置所需值的函数


您正在使用
setAll(int[]数组,IntUnaryOperator生成器)
方法,该方法将传递的一元运算符应用于数组的索引

因此

从Javadoc:

生成器接受索引并生成该位置所需值的函数


文档中对lambda获取的参数有何评论?文档中对lambda获取的参数有何评论?非常感谢!!简单而精确!!非常感谢你!!简单而精确!!
one[0] == 0 * 0
one[1] == 1 * 1
one[2] == 2 * 2
...