【问题标题】:Conceptual understanding about Array Lists in methods方法中数组列表的概念理解
【发布时间】:2014-12-03 05:00:28
【问题描述】:

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

代码会变成:

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

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

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

【问题讨论】:

标签: java


【解决方案1】:

无需混淆。你的代码对我来说似乎是正确的。在 java 中,为 premitive 类型提供了 Wrapper 类。 Java 管理这些前置类型变量到它们各自的包装类的装箱/拆箱。例如Integerint Longlong
通常 Wrapper 类 (Integer) 在考虑比较对象或执行某些类级别的操作(如 equals()hashCode() 方法)时会变得有用,而且 Collection 框架需要 Object 类型而不是 premitive 类型。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 非常足智多谋。感谢您的提醒!
    • 欢迎我很高兴我能帮上忙 :)) 顺便说一句。我只是想添加谷歌总是为你服务:P :)) 我希望我能得到一个被接受的答案:P jks
    【解决方案3】:

    Java 中的集合是泛型类,您可以使用它们来收集任何对象,但不能收集主要类型。所以你不能使用List&lt;int&gt;。如果您有兴趣使用List 等集合,则必须使用Integer

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

    【讨论】:

      【解决方案4】:

      Java 集合使用自动装箱概念。因此,在大多数情况下,您无需担心转换。这是内部处理的(即从装箱到未装箱(原始)类型)。

      下面是sn-p:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-25
        • 1970-01-01
        相关资源
        最近更新 更多