我是Java的初学者,正在尝试获取ArrayList中所有元素的总和。我通过使用方法来做到这一点,并在方法中得到此错误:
“二进制操作数“ +”的错误操作数类型的第一种:int,第二种 类型:对象”
我不知道我在做什么错,谢谢您的帮助!
public static int sumNumbers(ArrayList numbers){
int sum = 0;
for(int i = 0; i<numbers.size(); i++){
sum+=numbers.get(i);
}
return sum;
}
答案 0 :(得分:1)
正如其他人指出的那样,您需要给gsub('1', '', sapply(split(df, 1:nrow(df)), function(i)
paste(paste0(names(i)[i != 0], i[i != 0]), collapse = '')))
# 1 2 3
# "C5H5" "C6H4NS" "C4H6N2O"
指定一个类型。然后,您可以使用本机流使代码更紧凑:
ArrayList
答案 1 :(得分:0)
将numbers
声明为ArrayList<Integer> numbers
。
然后Integer
将被取消装箱到int
。现在,您的arraylist
包含的objects
可能不是int
。
目前,numbers.get()
将返回object
,并且您不能直接将object
添加到int
。
您始终可以将元素强制转换为Integer
,但我建议使用第一个选项。
答案 2 :(得分:0)
这会很好。
import java.util.ArrayList;
public static int sumNumbers(ArrayList<Integer> numbers){
int sum = 0;
for(int i = 0; i<numbers.size(); i++){
sum+=numbers.get(i);
}
return sum;
}
或
public static int sumNumbers(ArrayList<Integer> numbers){
return numbers.stream().mapToInt(n->n).sum();
}
答案 3 :(得分:0)
// create a list
List<Integer> ints = Arrays.asList(1, 2, 3);
// get the sum of the elements in the list
int sum = MathUtils.sum(ints);