2017-10-02 13 views
1

とVHS版原始行列検索の多くの後、私は最終的に(特にdouble)ラムダ式を使用してプリミティブ配列をボックスとVHS版には、次の方法を記述するために管理double[][]Double[][]と同じことをする必要がありましたが、解決策を出すには十分なラムダ式を理解できません。何も検索できませんでした。ジャワ・ボックスとラムダ

実際には、他の理由から私のプリミティブ行列をクラスにラップする必要があったため、これを行う必要はなくなりましたが、将来の参照のために答えがあると便利だと思いました。

答えて

1

2D配列は配列の配列です。ストリームはストリームで、各要素(独自の配列)を個別に処理できます。これを行うための比較的きちんとした方法は、boxunboxメソッドを再利用することです。

public static Double[][] box(double unboxed[][]) { 
    return Arrays.stream(unboxed).map(Boxer::box).toArray(Double[][]::new); 
} 

public static double[][] unbox(Double boxed[][]) { 
    return Arrays.stream(boxed).map(TmpTest::unbox).toArray(double[][]::new); 
} 
+1

ありがとう!そして誰も驚くことではないが、大括弧を追加することで、これらのメソッドで使用できる次元が増えます。 – GuiRitter