java - float[] 差异

标签 java

我想知道查找两个 float 组之间差异的绝对值的最有效方法是什么?

是否是以下内容:

private float absDifference(float[] vector1, float[] vector2) {
    float difference=0;
    int len=Math.max(vector1.length, vector2.length);
    for(int n=0;n<len;n++){
        float diff=0;
        if(n<vector1.length){
            diff+=vector1[n];
        }
        if(n<vector2.length){
            diff-=vector2[n];
        }
        difference+=Math.abs(diff);
    }
    return difference;
}

最佳答案

private float absDifference(float[] vector1, float[] vector2) {
    float difference=0;
    int len=Math.min(vector1.length, vector2.length);
    for(int n=0;n<len;n++){
            diff+=vector1[n]-vector2[n];
        difference+=Math.abs(vector1[n]-vector2[n]);
    }
    if(vector1.length > vector2.length){
        for(;n<vector1.length;n++){
            difference+=Math.abs(vector1[n]);
       }
    }else{
       for(;n<vector2.length;n++){
           difference+=Math.abs(vector2[n]);
       }
    }
    return difference;
}

这样,在单独处理较长数组的其余部分之后,第一个循环内就不会重复进行边界检查

关于java - float[] 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5925031/

相关文章:

java 类路径意外地找到了一个库

java - 具有 JNI 依赖的 Clojure 本地 Maven 存储库

c# - 在连接 Sql Server 数据库时,Java 和 C# 有什么区别?

java - 将二维数组传输到文件并传回

java - Java 中的 "implements Runnable"与 "extends Thread"

java - 为什么从串行GC切换到G1会增加RSS

java - 如何通过API获取windchill中的序号

java - 将 localDate 与 UTC 结合使用

java - 违反完整性约束 (...) - 找到子记录、Java、Oracle、Hibernate

java - 使用 Hibernate 时内存使用率高