【问题标题】:Pass ArrayList to method? [duplicate]将 ArrayList 传递给方法? [复制]
【发布时间】:2013-07-15 12:55:19
【问题描述】:

有没有办法将 ArrayList 作为参数传递给方法?到目前为止,这是我没有工作的内容:

int[] exampleMethod(ArrayList<int> exampleList) {

}

非常感谢任何帮助!

【问题讨论】:

  • 是的,它是正确的,有什么问题?
  • 查看所有试图回答重复问题而不是投票结束的人(尤其是那些代表超过 3k 的人)。
  • 我搜索了它但找不到它,所以显然值得再问一个问题,不是吗?有人可以很容易地使用我的措辞而不是你的措辞来搜索它,这可以帮助他们。
  • 不,这几乎是正确的。您的 ArrayList 类型应该是 Integer 而不是 int 作为原始类型。除了您的包装器还可以
  • @Mr.Lavalamp 也可以发布您遇到的编译错误

标签: java


【解决方案1】:

是的。

使用包装类。

int[] exampleMethod(ArrayList<Integer> exampleList) {

}

【讨论】:

    【解决方案2】:

    使用 Wrapper 类:

    int[] exampleMethod(ArrayList<int> exampleList) {
    
    }
    

    List&lt;E&gt; 不能接受像 int 这样的原始数据类型,因此我们提供了像 Integer 这样的包装类型。您还可以传递List&lt;Integer&gt; 接口类型而不是实现类型以实现重用。

    在此处阅读Oracle tutorials

    【讨论】:

      【解决方案3】:

      int 替换为Integer 然后它会正常工作:)
      所以应该是

      int[] exampleMethod(ArrayList<Integer> exampleList) {
      
      }
      

      请记住,集合总是需要包装类而不是原始数据类型。
      int 是原始数据类型,Integer 是它的包装类。

      【讨论】:

        【解决方案4】:

        试试这个

        int[] exampleMethod(ArrayList<Integer> exampleList) {
        
        
            }
        

        【讨论】:

          【解决方案5】:

          如前所述,您必须使用包装类

           int[] foo(List<Integer> oArray)
           {
           }
          

          int 是原始类型,因此您不能在List 中使用它。这也适用于其他原始类型,如 charbooleanfloat 等。在所有这些情况下,当您在需要对象的地方使用它们时,您必须使用它们的对应类(例如在 Map )。

          正如您在我的示例中看到的,您应该在方法中接受List&lt;Integer&gt;,而不是ArrayListArrayList 是一个专门的类,所以当你将它限制为ArrayList 时,你只能接受这个类型,而如果你使用接口类型,你可以接受任何类型的List,你的代码应该仍然可以工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-11-01
            • 2015-09-27
            • 2012-04-09
            • 2020-06-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多