我想知道,为以下问题创建可重用的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/

10-10 14:40