Java 列表<整数>

bra*_*nny -1 java

我有以下方法:

public static List<Integer> gradingStudents(List<Integer> grades) {
    for(int i = 0; i < grades.size(); i++){
        if(grades.get(i) < 40)
            continue;
        else if(grades.get(i) % 5 < 3)
            grades.get(i) = grades.get(i) + (Math.abs(grades.get(i)%5-5));     
        else
            continue;
    }
    return grades;
}
Run Code Online (Sandbox Code Playgroud)

我在else if部分遇到了意外的类型错误。为什么我不能grades像上面代码中写的那样更改 的元素?

Era*_*ran 8

您不能分配给grades.get(i).

我建议您按如下方式简化代码:

public static List<Integer> gradingStudents(List<Integer> grades) {
    for(int i = 0; i < grades.size(); i++){
        int grade = grades.get(i);
        if (grade >= 40 && grade % 5 < 3) {
            grades.set(i, grade + Math.abs(grade%5-5));   
        }  
    }
    return grades;
}
Run Code Online (Sandbox Code Playgroud)

  • @bravoJohnny [当有人回答我的问题时我该怎么办?](https://stackoverflow.com/help/someone-answers) (2认同)