2017-06-05 17 views
5

Bu kod ile 2D dize diziye 2D int dizi dönüştürmek için çalışılıyor:Bir 2D int dizisini Streams ile bir 2D Dize dizisine nasıl dönüştürebilirim?

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

ama Integer.toString(i) yaparken ben derleme zamanı hatası cannot convert from String to int olsun. Bunun bir int dizisinin String dizisinde akışını topladığımdan, ancak map yeni Collection oluşturmama neden olabileceğini düşündüm. Bir int[] üzerine

cevap

10

Arrays.stream, sen IntStream.mapToObj yöntemini kullanmak zorunda bir IntStream döndürür ve bir String veya başka herhangi bir Object bir int gitmek için değil, map yöntemi:

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

arasında map yöntemi IntStream sadece int'dan int'a eşlemek için kullanılır.

İlgili konular