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

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 来赋值
相关推荐
C++、Java和Python的菜鸟24 分钟前
第7章 Java高级技术
java·开发语言
程序员佳佳34 分钟前
模型网关灰度不是调百分比:把放量、观测和回滚做成账本
java·数据库·人工智能·redis·gpt·aigc·embedding
Listen·Rain2 小时前
Springboot整合Ollama实现调用本地多模型
java·spring boot·后端
霸道流氓气质2 小时前
Java 工程师 AI 智能体(Agent)完整学习路线
java·人工智能·学习
aaPIXa6222 小时前
C++模板元编程:编译期计算Fibonacci数列
java·开发语言·c++
SunnyDays10112 小时前
Java 编辑 PDF:从增删改查到加密保护
java·修改 pdf·编辑 pdf
球king2 小时前
CC GUI 插件:在 IDEA 中使用 CodeX
java·ide·intellij-idea
山塘小鱼儿3 小时前
Agent多轮对话调用MCP Tools
java·ai·ai编程
豆瓣鸡3 小时前
网关、服务 userId 透传
java·微服务·gateway
bksczm3 小时前
Linux之信号量(POSIX标准)
java·开发语言