繁体   English   中英

如何使用Streams将2D int数组转换为2D String数组?

[英]How can I convert an 2D int array into a 2D String array with Streams?

我试图使用以下代码将2D int数组转换为2D String数组:

Arrays.stream(intArray).map(a -> 
    Arrays.stream(a).map(i -> 
        Integer.toString(i)).toArray()).toArray(String[][]::new);

但我得到的编译时错误在执行Integer.toString(i)cannot convert from String to int 我以为可能是因为我正在收集在String数组中流式传输int数组的结果,但是没有map创建一个新的Collection

int[]上的Arrays.stream返回一个IntStream ,并且从int转换为String或任何其他Object ,您必须使用IntStream.mapToObj方法,而不是map方法:

Arrays.stream(intArray).map(a -> 
    Arrays.stream(a).mapToObj(i -> 
        Integer.toString(i)).toArray(String[]::new)).toArray(String[][]::new);

IntStreammap方法仅用于从int映射到int

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM