У меня есть double[][]
, и я хотел был бы преобразовать его в BigDecimal[][]
. Я мог выполнить следующие действия:Как сопоставить n-мерный массив с другим типом с использованием потоков Java-8?
public static BigDecimal[][] convert(double[][] arr1){
BigDecimal[][] arr2 = new BigDecimal[arr1.length][arr1[0].length];
for(int i = 0; i < arr1.length; i++){
for(int j = 0; j < arr1[0].length; j++){
arr2[i][j] = new BigDecimal(arr1[i][j]);
}
}
return arr2;
}
Как я могу выполнить эту операцию с помощью потоков в Java-8?
В общем, данный объект типа Foo
с конструктором, который принимает один объект типа Bar
, что это лучший способ, чтобы преобразовать Bar[][]
к Foo[][]
с использованием потока? Как насчет Bar[][][]
до Foo[][][]
?
Конверсия в одном измерении прямолинейна. Код, я использую в течение 1D-массивов:
pubilc static Foo[] convert(Bar[] bars){
return Arrays.stream(bars).mapToObj(Foo::new).toArray(Foo[]::new);
}
Как это может быть достигнуто в 2-х измерениях? Что относительно 3- или 4-мерных размеров? Можно ли написать рекурсивный метод, который преобразует массив n
одного типа в массив n
другого типа?