gpt4 book ai didi

int[]、float[] 或 double[] 数组的 Java 函数

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:41 25 4
gpt4 key购买 nike

我想编写一个 Java 函数,它将获取 int[]float[]double[] 作为输入。该算法完全相同(某种标量积)。如何编写一个能够处理所有类型的数值数组的函数?

最佳答案

在 Java 中没有简单的方法来处理这个问题。您可以:

  • 使用 Wrapper 类型(Integer[]Float[]Double[])并使用 Number[ ] 作为参数。有效,因为数组在 Java 中是协变的:

public static void main(String[] args) {
f(new Integer[]{1,2,3});
f(new Float[]{1,2,3});
f(new Double[]{1,2,3});
}

private static void f(Number[] numbers) {
f[0].doubleValue();
}

请注意,这种方法会显着增加内存消耗。


  • int[]float[] 数组转换为 double[] 并始终使用 double 。最好创建方法的重载版本,其中采用 int[]float[] 的方法仅进行转换并委托(delegate)给实际的 double[] 实现。

  • 我相信 Scala 可以无缝地处理这个问题,因为 Java 原始类型在 Scala 中是语义对象。

关于int[]、float[] 或 double[] 数组的 Java 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com