gpt4 book ai didi

Java 2D array 到 2D ArrayList with stream

转载 作者:行者123 更新时间:2023-11-30 06:53:51 29 4
gpt4 key购买 nike

所以我有一个 Integer[][] data我想转换成 ArrayList<ArrayList<Integer>> ,所以我尝试使用流并想出了以下行:

ArrayList<ArrayList<Integer>> col = Arrays.stream(data).map(i -> Arrays.stream(i).collect(Collectors.toList())).collect(Collectors.toCollection(ArrayList<ArrayList<Integer>>::new));

但最后一部分collect(Collectors.toCollection(ArrayList<ArrayList<Integer>>::new))给我一个错误,它无法转换 ArrayList<ArrayList<Integer>> to C .

最佳答案

内部collect(Collectors.toList()返回 List<Integer> , 不是 ArrayList<Integer> , 所以你应该收集这些内部 List进入 ArrayList<List<Integer>> :

ArrayList<List<Integer>> col = 
Arrays.stream(data)
.map(i -> Arrays.stream(i)
.collect(Collectors.toList()))
.collect(Collectors.toCollection(ArrayList<List<Integer>>::new));

或者,使用 Collectors.toCollection(ArrayList<Integer>::new)收集内在元素Stream :

ArrayList<ArrayList<Integer>> col = 
Arrays.stream(data)
.map(i -> Arrays.stream(i)
.collect(Collectors.toCollection(ArrayList<Integer>::new)))
.collect(Collectors.toCollection(ArrayList<ArrayList<Integer>>::new));

关于Java 2D array 到 2D ArrayList with stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36999907/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com