【问题标题】:How can I convert an 2D int array into a 2D String array with Streams?如何使用 Streams 将 2D int 数组转换为 2D String 数组?
【发布时间】:2017-06-05 21:54:25
【问题描述】:

我正在尝试使用以下代码将 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

【问题讨论】:

    标签: java multidimensional-array java-8 java-stream


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 2016-12-08
      • 2013-08-14
      相关资源
      最近更新 更多