提问人:Vibhanshu Jha 提问时间:12/8/2022 最后编辑:Vibhanshu Jha 更新时间:12/13/2022 访问量:42
尝试使用流 API 来查找块大小来解决问题。在.collect(Collectors.toList(ArrayList<int[]>::new))处给出错误。Java 8+ 流
Trying to solve a problem using stream API to find the chunk size. Giving error at .collect(Collectors.toList(ArrayList<int[]>::new)). Java 8+ Stream
问:
IntStream.iterate(0, i -> i + chunkSize)
.limit((long) Math.ceil((double) input.length / chunkSize))
.mapToObj(j -> Arrays.copyOfRange(input, j, j + chunkSize > input.length ? input.length : j + chunkSize))
.collect(Collectors.toList(ArrayList<int[]>::new));
}
我试图使用 Java 8 流打印数组,它应该将 List<int[]> 类型返回给 main 函数。示例输入在代码中提到。
答:
1赞
ItsMoi
12/8/2022
#1
代码正在尝试创建一个 ,但用于创建列表的语法不正确。若要解决此问题,可以替换以下行:List<int[]>
.collect(Collectors.toList(ArrayList<int[]>::new));
用这一行:
.collect(Collectors.toList());
这将创建一个 using 默认实现,即 .List<int[]>
List
ArrayList
或者,您可以显式指定实现,如下所示:ArrayList
.collect(Collectors.toCollection(ArrayList::new));
这也将创建一个 using 实现。List<int[]>
ArrayList
评论
2赞
Holger
12/8/2022
您还可以显式指定列表的元素类型,即 .但关键是,使用任何一个,不带参数或带有工厂参数。.collect(Collectors.toCollection(ArrayList<int[]>::new))
toList()
toCollection(…)
评论