Java 带下划线的流过滤器方法
我在回答代码战的问题时发现了这个问题 不带元素的输入阵列Java 带下划线的流过滤器方法,java,filter,java-8,java-stream,Java,Filter,Java 8,Java Stream,我在回答代码战的问题时发现了这个问题 不带元素的输入阵列k-1、2k-1、3k-1等 范例 对于输入阵列=[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
k-1、2k-1、3k-1
等
范例
对于输入阵列=[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();
}
流的filter方法排除箭头后的表达式计算结果为false的元素 换句话说,当表达式的计算结果为true时,它会保留这些值
正如@Snehal Patel在评论中指出的那样,
\uu
是包含提交给过滤器的当前值的变量。通常使用uu或uuu作为未使用参数的名称(特别是在Swift语言中) \uuuu
是变量名,根据java规则有效。这是随Java8
发布的stream
API。您可以在这里找到基本的流api->