您好我想知道使用list或arrayList作为方法参数是否更好?
例如 -
public static void calculate(List<T> list) {}
或
public static void calculate(ArrayList<T> list) {}
我认为最好使用List,因为它为您提供了更多选项来使用链接列表或其他...但如果我错了,您能告诉我为什么ArrayList更好或为什么List更好?
由于
答案 0 :(得分:1)
接口代码,接口代码,接口代码。
如果有人想要使用您的API但是传递不同类型的列表会怎么样?甚至不是一个列表,而是一个集合?使用API所需的最通用接口。
答案 1 :(得分:1)
您的方法应该接受该方法有意义的任何参数。
如果您的方法适用于任何List
,则参数应为List<?>
类型。
如果您的方法不需要按索引访问项目,那么允许该方法接受Collection<?>
或Iterable<?>
可能是个好主意。
如果您的方法仅对数字列表有意义,则参数应具有类型List<? extends Number>
。
通常,参数的类型ArrayList
不是一个好主意。如果您的方法仅对某些类型的List
有意义,例如List
s可变,或List
s接受null
项,那么您应该让键入List<?>
,但要仔细记录要求。