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)

相关推荐
努力努力再努力wz10 分钟前
【Linux网络系列】:TCP 的秩序与策略:揭秘传输层如何从不可靠的网络中构建绝对可靠的通信信道
java·linux·开发语言·数据结构·c++·python·算法
yy.y--1 小时前
Java数组逆序读写文件实战
java·开发语言
BD_Marathon2 小时前
IDEA创建多级包时显示在同一行怎么办
java·ide·intellij-idea
亓才孓2 小时前
【Exception】CONDITIONS EVALUATION REPORT条件评估报告
java·开发语言·mybatis
硅基动力AI3 小时前
如何判断一个关键词值不值得做?
java·前端·数据库
重生之后端学习4 小时前
78. 子集
java·数据结构·算法·职场和发展·深度优先
那起舞的日子4 小时前
斐波那契数列
java·算法
想用offer打牌4 小时前
一站式了解接口防刷(限流)的基本操作
java·后端·架构
姜源Jerry5 小时前
【Trae】Trae IDE&SOLO浅尝
java·ide·ai
宇木灵5 小时前
C语言基础-三、流程控制语句
java·c语言·前端