我想将一个 int
数组转换为一个 double
数组。
所以,当我有
int arr[] = {1, 2, 3};
我想使用 arr
,比如将它作为 double[]
参数传递
到一个方法。
最好的方法是什么?
类型转换
(double[])arr
没用。
我可以遍历arr
:
double[] dblA = new double[arr.length];
int ind=0;
for (int x:arr)
dblA[ind++]=x; // (double)x;
有更好的方法吗?
System.arraycopy
没有这样做——不适用于两种不同基本类型的数组。
注:锯Casting Object to Array in Java以及其他一些讨论。
TIA。
最佳答案
使用 Java 7 或更低版本没有简单的解决方法,您只需手动将它们复制过来。
使用 Java 8,您可以更轻松地使用以下流(当然您确实需要遍历数组):
int[] intArray = {1, 2, 3};
double[] doubleArray = Arrays.stream(intArray)
.mapToDouble(i -> i)
.toArray();
这将首先创建一个 IntStream
,然后使用转换 IntToDoubleFunction
将它映射到一个 DoubleStream
,它映射每个 int i
做相应的 double i
。最后,您使用 toArray
关于java - 转换 Java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704077/