【简单理解】数组、数组列表、集合

1. 先分三个东西

  1. 普通数组 :int[] 、String[]
  2. ArrayList(数组列表)
  3. Collection(集合)

2. 最简单比喻

  • 普通数组 :

    就像固定大小的盒子 ,一开始定好能装5个,装满就不能再加,想多装只能换新盒子。

  • ArrayList :

    就是会自动变大的盒子,你随便往里放东西,满了它自己悄悄变大,不用你管。

  • Collection :

    它不是盒子 ,只是一张图纸 。

    规定:凡是叫"集合"的盒子,都必须能 添加、删除、遍历 东西。

    ArrayList 就是按照这张图纸做出来的成品盒子。

3. 三者关系一句话

Collection 是图纸(接口)
List 是详细一点的图纸
ArrayList 是真正能用的成品盒子
普通数组 跟这套图纸没关系,是单独的老款盒子

4. 只记这两个核心区别就行

① 普通数组 vs ArrayList

  • 普通数组:长度固定,不能自动变大
  • ArrayList:长度不固定,自动扩容,随便加元素

② ArrayList vs Collection

  • Collection:只是规则、图纸,不能 new 出来直接用
  • ArrayList:实实在在能 new、能装数据来用的

5. 看代码一眼懂

java 复制代码
// 普通数组:固定长度3,最多放3个
String[] arr = new String[3];

// ArrayList:随便加,不限个数
ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4"); // 还能继续加,没事

// Collection 只是接口,不能直接 new
Collection<String> c = new ArrayList<>();
// 只能用它的子类 ArrayList、HashSet 来赋值
相关推荐
_Evan_Yao2 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
梓豪csd3 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼3 小时前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
thefool1122663 小时前
TCP 1
java·1024程序员节
金銀銅鐵6 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手6 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
paopaokaka_luck8 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428048 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
考虑考虑9 小时前
JDK26的JEP 500属性
java·后端·java ee
LMT流氓兔9 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节