在我看来,与数组相比,列表的优点非常明显:
- 泛型提供更精确的类型:
List<Integer>, List<? extends Number>, List<? super Integer>
。 - List接口具有许多有用的方法:
addAll
,remove
等。而对于数组来说,除了get/set之外的所有标准操作都必须通过传递到静态方法中以过程方式执行。 - 集合提供不同的实现,如
ArrayList
,LinkedList
,不可修改和同步列表,可以在公共List接口下隐藏。 - 面向对象的长度控制。
缺点方面,我只能提到缺乏语法糖和运行时类型检查。同时,支持两种结构需要频繁使用asList
和toArray
方法,这使代码不太易读。因此,我很想知道是否存在使用数组时我没有注意到的重要优点。