为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Streams 将嵌套整数列表转换为二维数组

使用 Streams 将嵌套整数列表转换为二维数组

慕田峪4524236 2023-09-20 17:26:47
我搜索了类似的问题,但我只发现了不适用于这种情况的对象字符串:想要转换List<List<Integer>> list为int[][] array使用流到目前为止我得到了这个:int[][] array= list.stream().map(List::toArray)...我以我发现的其他类似问题为基础。但这些使用 String 并且不能使其适用于 Integers->int:// Example with String 1:    String[][] array = list.stream()        .map(l -> l.stream().toArray(String[]::new))        .toArray(String[][]::new);// Example with String 2:        final List<List<String>> list = ...;    final String[][] array = list.stream().map(List::toArray).toArray(String[][]::new);
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

您只需对解决String[][]方案进行一些修改:

List<List<Integer>> lists = ...;
int[][] arrays = lists.stream()                                // Stream<List<Integer>>
        .map(list -> list.stream().mapToInt(i -> i).toArray()) // Stream<int[]>
        .toArray(int[][]::new);

正在mapToInt(i -> i)拆箱每个Integer(即Integer→ int)。

看:

  • Stream#mapToInt(ToIntFunction)

  • IntStream#toArray()


查看完整回答
反对 回复 2023-09-20
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信