java - 转换 Java 数组

标签 java arrays casting

我想将一个 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/

相关文章:

c++ - 在两个枚举之间重载转换运算符

java - Android 缓冲区大小和频率

java - 在 Spring MVC Web 应用程序中提交表单时出现错误 404

c - 为什么数组的元素打印不正确?

javascript - 从 location.hash 的 url 中取出#

c++ - 将容器中的基类向下转换为派生类

java - Eclipse JDT ASTParser 错误地转换枚举声明节点

java - 为游戏添加声音。需要帮助

arrays - 查询 MongoDB 中的整个对象数组

java - 将 IA5String 转换为字符串