我想知道,为以下问题创建可重用的IntStream是否有意义,以及如何这样做。
基本上,我需要遍历要检测的int []个数字,并在另一个int []中计数这些数字的频率。
如果我有一个IntStream-Supplier,它可以在某些循环中重用。所以,我正在寻找类似的东西
int[] intsToBeDectected = new int[]{1,2,3}
int[] numbers = new int[]{1,1,1,2,3,3,3,3,3}
Supplier<IntStream> supplier = IntStream.of(numbers); // ERROR
for (int i : intsToBeDetected){
int freq = (int) supplier.get().filter(n -> n=i).count();
}
从Java中的对象流,我知道这样的事情:
Supplier<Stream<Object>> supplier = () -> Arrays.stream(objects)
该对象流可重复使用,例如:
supplier.get().filter()...
但是,我不知何故无法将此想法传递给IntStreams-它未在用ERROR注释的行中进行编译。
转移这个概念有意义吗?如果是,该怎么办?
最佳答案
更换
Supplier<IntStream> supplier = IntStream.of(numbers); // ERROR
与
Supplier<IntStream> supplier = () -> IntStream.of(numbers);
关于java - 创建可重用的IntStream是否有用?如果是,怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57655718/