java - 如何找到数组中第二大的数字

标签 java arrays loops methods

正在开发一个程序,我们需要单独的方法来查找最高和第二高的数字。我的代码可以很好地找到最高的数字,但我不知道如何找到第二高的数字。

public static int highestNumber(int []array1) {

  int max = -999999;

     for (int i = 1; i < array1.length; i++) {
         if (array1[i] > max) {
            max = array1[i];
            }
           } 
     return max;

}

  public static int secondHighest(int []array1) {

      int highest= highestNumber(array1);
    int secondHighest = array1[0];

           for (int i=1; i<array1.length; i++){
              if(array1[i]> highest && array1[i] secondHighest);
                    secondHighest=array1[i];
                }
  return secondHighest;
 }

最佳答案

我不喜欢使用-9999999,请使用Integer.MIN_VALUE或使用数组的第一个索引,
但是当使用第一个索引时,请确保数组的长度必须大于或等于1

public static int secondHighest(int[] array1)
{
    int highest = highestNumber(array1);

    int max = array[0];
    for( int i = 1; i < array1.Length; i++)
    {
        if(array[i] > max && array[i] < highest){
            max = array[i];
        }
    }

    return max;
}

关于java - 如何找到数组中第二大的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49787568/

相关文章:

java - 使用同步块(synchronized block)的锁

javascript - 使用 jQuery.map() 函数创建自定义对象数组

jquery循环创建元素

Java - 使用 apache.http.client.methods.HttpPost 发送 HTTP 参数

java - IntelliJ IDEA - 双引号和字母更改为 Unicode 字母

c - 如何将两个文本文件读入两个动态分配的数组并在c中逐字节比较它们?

php - 将数据从 1 个数组添加到另一个

java - 奇怪的循环输出 - Java

python - 增加组合迭代的Python式或最有效的方法是什么?

Java 函数式编程 : How to convert a if-else ladder inside for loop to functional style?