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)

相关推荐
Query*几秒前
Java 设计模式——适配器模式进阶:原理深挖、框架应用与实战扩展
java·设计模式·适配器模式
Sirens.10 分钟前
Java核心概念:抽象类、接口、Object类深度剖析
java·开发语言·github
Meteors.10 分钟前
23种设计模式——中介者模式 (Mediator Pattern)详解
java·设计模式·中介者模式
望获linux12 分钟前
【实时Linux实战系列】使用 u-trace 或 a-trace 进行用户态应用剖析
java·linux·前端·网络·数据库·elasticsearch·操作系统
焰火199920 分钟前
[Java]基于Spring的轻量级定时任务动态管理框架
java·后端
Seven9727 分钟前
Springboot 常见面试题汇总
java·spring boot
程序员阿鹏37 分钟前
49.字母异位词分组
java·开发语言·leetcode
云中隐龙1 小时前
mac使用本地jdk启动elasticsearch解决elasticsearch启动时jdk损坏问题
java·elasticsearch·macos
CodeLongBear1 小时前
苍穹外卖 Day12 实战总结:Apache POI 实现 Excel 报表导出全流程解析
java·excel
爱学习 爱分享1 小时前
mac idea 点击打开项目卡死
java·macos·intellij-idea