2017-06-05 16 views
5

私はこのコードで2D文字列配列に、2Dのint配列を変換しようとしています:2D int配列をStreamsで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を作成していないため、その可能性があります。の

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

map方法:map方法をint[]

答えて

10

Arrays.streamIntStreamを返し、Stringまたは任意の他のObjectintから行くために、あなたはIntStream.mapToObjメソッドを使用する必要がなく、 IntStreamは、intからintにマップするためにのみ使用されます。

関連する問題