如何从数组中选择最大值?

时间:2015-12-12 14:59:39

标签: java arrays

我正在创建一个基本的数学教程,对于这个部分,我有一个数组,数组填充了5个随机数,介于0和9之间。我创建的问题将给出5个随机数字,然后说"使用这些数字可以使用的最高数字是多少?"然后我将该数字存储在变量中

    // These are all Random numbers using the Random method
    a = num.nextInt(9);
    b = num.nextInt(9);
    c = num.nextInt(9);
    d = num.nextInt(9);
    e = num.nextInt(9);
    f = num.nextInt(9);

    // Asks the question right here (not important right now)
    // prints out 5 digits here (again, not important right now)

    g = ans.nextInt(); // this is the users response 

    int h3[] = {a, b, c, d, e, f}; // this array holds the random numbers

5 个答案:

答案 0 :(得分:2)

在java8中

 IntStream.of(h3).max().getAsInt();

答案 1 :(得分:0)

按降序对数组进行排序。该数字将是最高的5位数字。

虽然您要求5个随机数,但是您正在填写6个随机数。请更正。

  

int h3 [] = {a,b,c,d,e,f};

答案 2 :(得分:0)

我能想到这样做的最好方法是创建一个int变量并循环遍历数组,如果数字大于int变量中的数字,则覆盖它。

int biggest = -1; //you want this to be negative one originally to ensure it is overwritten

for (int i = 0; i < num.length; i++) {
    if (num[i] > biggest) {
        biggest = num[i];
    }
}

答案 3 :(得分:0)

    Arrays.sort(h3);
    int maxNo = h3[h3.length-1].

这应该做你需要的。您的最高值将设置为maxNo。别忘了导入Java.util。*;

答案 4 :(得分:0)

接受的答案确实有效,但对性能不利。

只需迭代数组并存储最高数字:

int highest = array[0];
for (int i = 0; i < array.length; i++) {
    if (array[i] > highest) {
        highest = array[i];
    }
}

确实可以对数组进行排序,然后选择最后一个数组元素:

Arrays.sort(array);
int max = array[array.length - 1];

这可以解决问题,但应该知道导致性能不佳

另请注意,在这种情况下,下面的Java 8方法似乎非常慢。当阵列变大时,它可能会相对更快。

 return IntStream.of(array).max().getAsInt();