对于赋值,我们必须编写一个方法求和,期望List作为参数。该方法返回一个int,表示列表中整数的总和。
代码结果是:
public int getSum (List <Integer> list) {
int sum = 0;
for (int i = list)
sum = sum + i;
return sum;
}
我对在这种情况下何时使用Integer vs int感到困惑。提前谢谢!
编辑:如果可能,你们可以编辑我的代码吗?
答案 0 :(得分:1)
Integer
是一个对象/ Wrapper Class int
是原始类型,Here is the link for you to understand more
答案 1 :(得分:1)
无需混淆。你的代码对我来说似乎是对的。在java Wrapper中,为premitive类型提供了类。 Java管理那些premitive类型变量的装箱/取消装箱到它们各自的包装类。例如对于Integer
等int
Long
long
通常Wrapper类(Integer
)在考虑比较对象或执行某些类级别操作(例如equals()
和hashCode()
方法时变得有用,而且Collection framework需要Object类型而不是premitive类型
答案 2 :(得分:0)
java中的集合是泛型类,您可以使用它们来收集任何对象,但不能收集主要类型。所以你不能使用List<int>
。如果您对使用List
等集合感兴趣,则必须使用Integer
。
public int getSum (List <Integer> list) {
int sum = 0;
for (int i : list)
sum = sum + i;
return sum;
}
答案 3 :(得分:0)
Java集合使用自动装箱概念。因此,对于大多数情况,您无需担心转换。这是内部处理的(即从盒装到未装箱(原始)类型)。
以下是摘录:
public int getSum (List<Integer> list) {
int sum = 0;
for (int elem : list)
sum += elem;
return sum;
}