【发布时间】:2014-09-06 19:41:01
【问题描述】:
我希望将 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。
【问题讨论】:
-
感谢有用的注释。 C 做这些事情。 Java 在数组上没有 t 有点令人不安。
-
“C 做这些事”?我不知道有什么方法可以在 C 中做到这一点,而无需遍历数组并通过将每个整数转换为双精度来创建一个新数组。我错过了 C 语言中的某些内容吗? (如果你说的是 C++ 中的 STL 算法,我认为 Java 中可能有一个等价的算法。)
-
@ajb System.arraycopy() 没有它。数组中也没有任何内容。想不出 API 中的其他任何地方都可以。
-
你可以将任何东西转换为 C 中的任何东西。你会得到完全的垃圾,但你可以转换它。 :)