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)

相关推荐
user_admin_god7 分钟前
企业级管理系统的站内信怎么轻量级优雅实现
java·大数据·数据库·spring boot
q***82918 分钟前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
Kuo-Teng16 分钟前
LeetCode 206: Reverse Linked List
java·算法·leetcode·职场和发展
yaoxin52112317 分钟前
237. Java 集合 - 对 List 元素进行排序
java·windows
yaoxin52112322 分钟前
236. Java 集合 - 使用索引访问 List 元素
java·windows·list
humors2211 小时前
服务端开发案例(不定期更新)
java·数据库·后端·mysql·mybatis·excel
百***68041 小时前
JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
java·tomcat
庸子1 小时前
Kubernetes调度器深度解析:从资源分配到亲和性策略的架构师之路
java·算法·云原生·贪心算法·kubernetes·devops
_Jimmy_2 小时前
Nacos的三层缓存是什么
java·缓存
朝新_2 小时前
【实战】动态 SQL + 统一 Result + 登录校验:图书管理系统(下)
xml·java·数据库·sql·mybatis