声明 Array List 的3种方式 ArrayList、Collection、List 的区别
ArrayList 是一个实现了 List 接口的类,而 List 和 Collection 都是Java集合框架中的接口。
(图片来源网络,侵删)
这三个声明之间有一些重要的区别:
-
ArrayList list = new ArrayList();
这是一个原始类型的声明,意味着没有使用泛型。
这样的声明允许你在 list 中添加任何类型的对象,这可能会导致运行时错误(例如,当你尝试从列表中检索特定类型的对象时)。
在现代Java编程中,通常不推荐使用原始类型的集合,因为它们不提供类型安全。
-
Collection list = new ArrayList();
这里,你声明了一个 Collection 类型的变量 list 并将其初始化为一个 ArrayList 的实例。
尽管这是合法的,但通常不推荐这样做,
因为 Collection 接口提供的操作比 List 接口少。当你使用 Collection 类型时,你失去了 List 提供的特定方法,如 get(int index) 或 add(int index, E element)。
-
List list = new ArrayList();
这是一个使用原始类型的 List 接口的声明。
尽管它允许你添加任何类型的对象,但与第一个声明相比,它提供了更多的类型安全,
因为你可以将 list 转换为具体的 List 类型(例如 List)。
然而,为了获得最大的类型安全性,你应该使用泛型:List list = new ArrayList();
在这个声明中,list 是一个只能包含 String 类型对象的 List。
总结:
- 使用原始类型的集合(如 ArrayList list = new ArrayList();)是不推荐的,因为它们不提供类型安全。
- 使用 Collection 类型(如 Collection list = new ArrayList();)可能会限制你访问 List 接口提供的特定方法。
- 使用泛型的 List 接口(如 List list = new ArrayList();)是最佳做法,因为它提供了类型安全并允许你访问 List 接口的所有方法。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。