java - 如何找到数组中最大的数

标签 java arrays max

我有一个 grades(g) 数组,它是一个 int[]我正试图在该数组中找到最大的等级。我试过这个:

public static String highestGradeName(int[] g, String[] n) {
    String highStudent;
    int highest = g[0];
    for (int i=1; i < g.length; i++) {
        if (highest < g[i]) {
            highStudent = n[i+1];
            return (highStudent);
        }
    }
    return null;
}

我有另一个数组,它是一个字符串数组,包含学生的姓名,我有 return null那里因为它说它需要一个返回声明但是我没有计划它永远是null .是什么导致它返回 null而不是 highstudent ?
我已经使用了准确的代码来找到最低等级并且它工作正常我对这个所做的唯一一件事就是将 if 语句从 highest > g[i] 更改为至 highest < g[i] .

最佳答案

从循环内部返回是错误的,因为稍后数组中始终可以有更大的数字。你应该保留最高等级的索引,最后只返回相应的名称:

public static String highestGradeName(int[] g, String[] n) {
    int highest = 0;
    for (int i = 1; i < g.length; i++) {
        if (g[highest] < g[i]) {
            highest = i;
        }
    }
    return n[highest];
}

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

相关文章:

c++ - 在 C++ 的构造函数中初始化一个数组

R:根据组与另一列的最大值的行差异的新列

mysql - 名人堂领带(团体玩家,最高级别,然后当月份是每场比赛的最高分数......)

java - 如何让媒体 Controller 工作

javascript - 在 JavaScript 中组合对象数组中的连续值

java - 在同一项目中使用多种 JVM 语言

python - 以人类可读的格式保存 numpy 数组的字典

python - 查找可能包含 NAN 的一维数组的最大值

java - Libgdx - 减慢射弹停止,然后反转它

java - 谷歌分析的 setCredentialStore 方法的替代方法