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)

相关推荐
魔力军1 小时前
Rust学习Day3: 3个小demo实现
java·学习·rust
时艰.2 小时前
java性能调优 — 高并发缓存一致性
java·开发语言·缓存
落花流水 丶2 小时前
Java 多线程完全指南
java
jxy99982 小时前
mac mini 安装java JDK 17
java·开发语言·macos
biyezuopinvip2 小时前
基于Spring Boot的企业网盘的设计与实现(毕业论文)
java·spring boot·vue·毕业设计·论文·毕业论文·企业网盘的设计与实现
Hx_Ma162 小时前
SSM搭建(三)Spring整合SpringMVC框架
java·后端·spring
无风听海2 小时前
.NET10之ASP.NET Core的Filter管线
java·asp.net·.net
少许极端2 小时前
算法奇妙屋(二十八)-递归、回溯与剪枝的综合问题 1
java·算法·深度优先·剪枝·回溯·递归
rainbow68892 小时前
C++STL list容器模拟实现详解
开发语言·c++·list
Boop_wu2 小时前
简单介绍 JSON
java·开发语言