2个双数组与容差的有效比较 - Java

时间:2018-01-18 12:02:54

标签: java arrays double

我有一种方法来检查2个double []的相等性,每个元素之间有一个容差。我想让它更快,我想知道是否有办法在没有for循环的情况下做到这一点。我一直在寻找但却找不到能做到这一点的东西。 Arrays.equals()或deepEquals()似乎没有对双重相等的容忍度。有什么建议? 这就是我目前所拥有的:

private boolean myEquals(double[] array1, double[] array2)
   {
    if(array1.length == array2.length)
    {
       for(int i = 0; i < array1.length; i++)
       {
        if(Math.abs(array1[i] - array2[i]) > 0.01)
        {
           return false;
        }
       }
    }
    else
    {
       return false;
    }
    return true;
   }

1 个答案:

答案 0 :(得分:0)

我不知道如何避免迭代所有元素。看看Arrays.equals(),这正是它在那里完成的...... 但是,您还应检查每个数组的无效性,否则可能会出现NullPointerException