【问题标题】:Use ArrayList or List in method parameter list在方法参数列表中使用 ArrayList 或 List
【发布时间】:2015-07-07 22:41:42
【问题描述】:

您好我想知道使用 list 或 arrayList 作为方法参数是否更好?

例如-

public static void calculate(List<T> list) {}

public static void calculate(ArrayList<T> list) {}

我认为使用 List 会更好,因为它为您提供了使用链表或其他任何东西的更多选择...但如果我错了,您能告诉我为什么 ArrayList 更好或为什么 List 更好吗?

谢谢

【问题讨论】:

    标签: java list methods arraylist parameters


    【解决方案1】:

    代码到接口,代码到接口,代码到接口。

    如果有人想使用您的 API 但传递不同类型的列表怎么办?甚至根本不是一个列表,而是一个集合?使用您的 API 所需的最通用的接口。

    【讨论】:

      【解决方案2】:

      你的方法应该接受任何对该方法有意义的参数。

      如果您的方法对任何List 都有意义,则参数的类型应为List&lt;?&gt;

      如果您的方法不需要按索引访问项目,则允许该方法接受Collection&lt;?&gt;Iterable&lt;?&gt; 可能是个好主意。

      如果您的方法只对数字列表有意义,则参数的类型应为 List&lt;? extends Number&gt;

      一般来说,参数类型为ArrayList 不是一个好主意。如果您的方法只对特定类型的List 有意义,例如可变的Lists,或接受null 项目的Lists,您应该使参数具有List&lt;?&gt; 类型,但仔细记录要求。

      【讨论】:

        猜你喜欢
        • 2019-04-12
        • 2015-02-14
        • 2013-08-20
        • 1970-01-01
        • 1970-01-01
        • 2010-10-31
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多