在 Java 中,List 和 ArrayList 都广泛用于创建对象集合。然而,两者之间存在微妙但重要的区别。
提出的问题询问(1)和(2)是否可以互换。
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>();
答案是 (1) 通常优于 (2)。
优先选择(1)的原因是接口编码和封装的原则。 List 是一个接口,而 ArrayList 是该接口的具体实现。
通过将 myList 声明为 List>,您可以将 List 接口的任何实现(例如 LinkedList、Vector)分配给它。这种灵活性允许您在运行时为您的应用程序选择最合适的实现。
相反,如果将 myList 声明为 ArrayList>,则将其专门绑定到 ArrayList 实现。这限制了您稍后更改实现的能力。
考虑以下示例:
List<Integer> myList = new LinkedList<Integer>();
最初,您可以从 LinkedList 实现开始列表界面。但是,假设您遇到性能瓶颈,而更有效的实现(例如 ArrayList)更适合。
在这种情况下,您可以轻松地将 LinkedList 替换为 ArrayList,而不会影响代码库的其他部分。如果您使用过 ArrayList
以上是Java 中的 List 与 ArrayList:什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!