繁体   English   中英

Java列表<integer></integer>

[英]Java List<Integer>

我有以下方法:

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;
}

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

您不能分配给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;
}

这是因为您尝试修改列表,就像您尝试修改 python 中的列表或字典一样,如此处所示 您必须使用内置方法.set().get() set用于通过在给定索引中替换元素来添加元素, add方法通过推送元素的 rest 将元素添加到给定索引。 您可以在此处了解有关setget方法的更多信息

对于这个特定问题,正如@Eran 提到的这里,您可以使用.set()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM