List<String> 和 ArrayList<String>的区别

List<String> list = new ArrayList<>() 这种形式实际上是一种向上转型(upcasting)的体现,ArrayList 实现了 List 接口,可以看成是从 List 继承而来,一个子类的对象可以指向它父类。

为什么不是 ArrayList<String> list = new ArrayList<>()呢?

直接这样写没有问题,但是不够灵活,不推荐。因为 List 下除了 ArrayList 还有 LinkList 等他们都实现了List里面的方法。而声明成 List<String> list = new ArrayList<>()的形式使得 list 这个对象可以有多种的存在形式。使用LinkedList,ArrayList或者Vector存储数据代码如下:

复制代码
List<String> list = new LinkedList<String>();
List<String> list = new ArrayList<String>();
List<String> list = new Vector<String>();

这样就list对象就会更加灵活。

参考:List<String> 和 ArrayList<String>的区别 - 软测小生 - 博客园 (cnblogs.com)

相关推荐
Nan_Shu_6141 天前
学习:Java (1)
java·开发语言·学习
花花无缺1 天前
搞清‘’时区设置‘’以及Mysql的`DATETIME` 和 `TIMESTAMP`
java·mysql
曹牧1 天前
Java:String.startsWith 方法
java·开发语言
jiayong231 天前
海外求职平台与策略指南
java·spring
SadSunset1 天前
(37)全注解式开发AOP
java·spring
秃然想通1 天前
Java多态完全指南:深入理解“一个接口,多种实现”
java·开发语言
TT哇1 天前
Optional<T>
java·spring boot·java-ee
李拾叁的摸鱼日常1 天前
Java泛型基本用法与PECS原则详解
java·后端·面试
MediaTea1 天前
Python:实例 __dict__ 详解
java·linux·前端·数据库·python
个案命题1 天前
鸿蒙ArkUI组件通信专家:@Param装饰器的奇幻漂流
java·服务器·前端