[英]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);
IntStream
的map
方法仅用于从int
映射到int
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.