关于方法中数组列表的概念性理解

时间:2014-12-03 05:00:29

标签: java

对于赋值,我们必须编写一个方法求和,期望List作为参数。该方法返回一个int,表示列表中整数的总和。

代码结果是:

public int getSum (List <Integer> list) {
int sum = 0; 
for (int i = list) 
sum = sum + i; 
return sum; 
}

我对在这种情况下何时使用Integer vs int感到困惑。提前谢谢!

编辑:如果可能,你们可以编辑我的代码吗?

4 个答案:

答案 0 :(得分:1)

Integer是一个对象/ Wrapper Class int是原始类型,Here is the link for you to understand more

答案 1 :(得分:1)

无需混淆。你的代码对我来说似乎是对的。在java Wrapper中,为premitive类型提供了类。 Java管理那些premitive类型变量的装箱/取消装箱到它们各自的包装类。例如对于Integerint 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; 
}
相关问题