java - 我正在尝试获取一个值,同时使用来自 3 个数组的索引?

标签 java arrays indexing

name[5] = {Peter, James, Roger, Peter, Josę};

subject[5] = {English, Math, English, Science, Math};

grade[5] = {96, 67, 78, 84, 100};

我在这里要达到的目标是让主题表明个人已获得最高分。注意name Array中名字的重复,这是同一个人。我试图做的是使用 map 来获得结果,但是使用 3 个数组对于我目前拥有的 java 级别来说非常棘手。我想获取学生的姓名,将其与他们的成绩相匹配,然后选择成绩最高的科目,因此基本上每个学生姓名的返回都是一个值。像这样,

英语 数学 英语 数学

最佳答案

我将创建一个名为 getStudentsHighestMark 的方法,它获取姓名和成绩数据。该方法将遍历成绩并仅考虑相关学生的成绩。您需要一个 int 来跟踪您看到的该名称的最高成绩,以及该成绩对应的类(class)的字符串。遍历成绩后,只需返回学生最高分的类(class)名称。像这样:

public static void main(String[] args) {
    String[] names = {"Peter", "James", "Roger", "Peter", "Jose"};
    String[] subjects = {"English", "Math", "English", "Science", "Math"};
    int[] grades = {96, 67, 78, 84, 100};

    String petersBest = getStudentsHighestMark("Peter", names, subjects, grades);
    System.out.println("Peter's best is: " + petersBest); //Peter's best is: English
    String jamesBest = getStudentsHighestMark("James", names, subjects, grades);
    System.out.println("James's best is: " + jamesBest);  //James's best is: Math
    String rogersBest = getStudentsHighestMark("Roger", names, subjects, grades);
    System.out.println("Roger's best is: " + rogersBest);  //Roger's best is: English
    String josesBest = getStudentsHighestMark("Jose", names, subjects, grades);
    System.out.println("Jose's best is: " + josesBest);  //Jose's best is: Math
}

private static String getStudentsHighestMark(String name, String[] names, String[] subjects, int[] grades) {
    int highestGrade = 0;
    String bestCourse = "";
    for(int i = 0; i < names.length; i++) {
        if(names[i].equals(name) && grades[i] > highestGrade) {
            highestGrade = grades[i];
            bestCourse = subjects[i];
        }
    }
    return bestCourse;
}

关于java - 我正在尝试获取一个值,同时使用来自 3 个数组的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50993755/

相关文章:

javascript - 在 React/Redux 中过滤数组元素

arrays - 从 4096 个元素的 int 数组到 0 到 1 之间的 float

arrays - 蒙戈聚合 : return total average of array values

合并数据帧时 Pandas 'multi-index' 问题

Mysql性能调优

java - 在内部类之外声明 int 值

java - JTextArea后台问题

python - 带有初始化值的嵌套 FOR 循环,但继续整个列表范围

java - 代码仅输出相同的内容,不会使用 .equals 来输出不同的内容

java - 从 Firebase Firestore 将文档的一部分获取到对象中