Javascript 如何在Java中实现最大数组函数

Javascript 如何在Java中实现最大数组函数,javascript,java,arrays,Javascript,Java,Arrays,我正试图用JAVA开发一个类似的函数,但我不太明白-Infinity在JAVA中的作用以及如何使用它 我向您展示JS代码: 试试这个: public double arrayMax(double[] arr){ int len = arr.length; double max = Double.NEGATIVE_INFINITY; double rangomax = 99999; while(len--){ if ((arr[len] > m

我正试图用JAVA开发一个类似的函数,但我不太明白-Infinity在JAVA中的作用以及如何使用它

我向您展示JS代码:

试试这个:

public double arrayMax(double[] arr){
    int len = arr.length;
    double max = Double.NEGATIVE_INFINITY;
    double rangomax = 99999;
    while(len--){
        if ((arr[len] > max) && (arr[len] < rangomax)) {
             max = arr[len];
        }
    }
    return max;
}

正如我之前提到的,你可以使用Integer.MIN_值来完成这个任务。 不使用Integer.MIN_值也可以得到相同的结果

  public int max(int[] arr){
    if(arr == null || arr.length == 0) {
      return 0; // you can return any default value in case arr is empty or null
    }
    int max = arr[0];
    for(int num: arr){
      if(num >= max){
        max = num;
      }
    }
    return max;
  }
编辑:
对于尽可能接近JavaScript代码的Java代码,如果忽略未定义的值和空值,我们应该假设输入是一个对象[],否则就不需要所有的数字调用

公共静态双数组对象。。。啊{ 双rangomax=99999; 双最大值=双负无穷大; 对象对象对象:arr{ 双值=numberobj; 如果值>最大值&&value 公共静态双数组双。。。啊{ 双rangomax=99999; 双最大值=双负无穷大; 对于双值:arr{ 如果值>最大值&&value找到最大值的一种非常简单的方法:

public Double maxOfArray(int[] arr) { 

    double max = Double.MIN_VALUE; 

    for (int i = 0; i < arr.length; i++){ 

        if (arr[i] > max) { 

            max = arr[i];

        } 

    } 

    return max; 

}

java等价物应该是Integer.MIN_值。@Bufank85 java与javascript没有远程关联。移除此标签-当一个数字超过浮点数的下限时,将显示无穷大,即-1.797693134862316E+308。@azurefrog否,Java等效值为Double.NEGATIVE_无穷大。JS Number函数将数组值强制为双精度。问题中没有任何内容表明数字只是整数,因此我们应该假设它们可以是JavaScript中相同类型的数字,即双精度。@FailingCoder您似乎完全误解了这个问题。问题是试图用JAVA开发类似的函数。OP有那个JavaScript代码,知道它是如何工作的,但却在问如何用Java编写类似的代码。@Andreas谢谢,我以为我写错了,但它很完美。为什么你认为arr是int[]呢?如果有什么区别的话,我们应该假设它是一个double[],因为JavaScript只支持一个数字类型double,问题并没有指定值仅为整数。-从技术上讲,arr可以是一个对象[]重复调用Number会强制将值设置为double.int,因为最大范围为99999,小于int.double,因为如果arr为空,则返回值应为double.NEGATIVE_无穷大。由于您的代码与JavaScript代码的行为不同,我现在投反对票。更新为Double如果您希望代码与JavaScript代码的行为相同,则可以返回任何默认值,因为这样您只有一个选择:返回Double.NEGATIVE_∞-考虑到声明的返回类型,这当然将无法编译。-对不起,行为不同的解决方案现在应该得到我的否决票。@Andreas这正是注释的目的,正如我所知,这并不是我添加此注释的确切行为,因此我们将知道:由于OP特别要求Java等价物为-Infinity,您至少应该显示默认返回值,即回答问题。它当然不是0。@Andreas我假设OP想要一个类似的函数,而不是与-infinity等价的函数,因为他的帖子标题是如何在Java中实现最大数组函数,所以我给出了另一个选项。我只是想帮你改进答案,但你似乎不想在这方面得到帮助,所以我将保留否决票,因为答案仍然没有回答问题,代码仍然没有产生与JavaScript代码相同的结果。
public Double maxOfArray(int[] arr) { 

    double max = Double.MIN_VALUE; 

    for (int i = 0; i < arr.length; i++){ 

        if (arr[i] > max) { 

            max = arr[i];

        } 

    } 

    return max; 

}