当我运行
下面的简单代码段时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。我只是想知道为什么默认行为是这样设置的,我可以在哪里找到关于这种默认行为的额外读数?
答案 0 :(得分:4)
您正在使用setAll(int[] array, IntUnaryOperator generator)
方法,该方法将传递的一元运算符应用于数组的索引。
因此
one[0] == 0 * 0
one[1] == 1 * 1
one[2] == 2 * 2
...
来自Javadoc:
生成器一个接受索引并为该位置生成所需值的函数