我正在回答codefights上的问题,我发现了这个问题
inputArray没有元素k - 1, 2k - 1, 3k - 1
等。
实施例
对于inputArray = [1,2,3,4,5,6,7,8,9,10]和k = 3,
输出应该是 extractEachKth(inputArray,k)= [1,2,4,5,7,8,10]。
其中一个答案是我无法理解的以下代码。
int i;
int[] extractEachKth(int[] inputArray, int k)
{
return Arrays.stream(inputArray).filter(__ -> ++i % k > 0).toArray();
}
答案 0 :(得分:2)
流的过滤方法排除了箭头评估后的表达式为false的元素。
换句话说,它在表达式求值为true时保留值。
正如@Snehal Patel在评论中所指出的,__
是变量,包含提交给过滤器的当前值。通常的做法是使用_或__作为未使用参数的名称(例如,特别是在Swift语言中)。