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

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 来赋值
相关推荐
吠品8 小时前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
亚历克斯神9 小时前
智能搜索系统的升级复盘——从 Elasticsearch 到混合检索的检索质量提升
java·spring·微服务
金銀銅鐵10 小时前
[Java] 一个方法最多可以有多少个入参?
java·jvm
哭哭啼10 小时前
JAVA服务问题诊断
java·开发语言·jvm
Sayuanni%310 小时前
SpringBoot 从注解到源码:核心知识点总结
java·spring boot·后端
坚定信念,勇往无前11 小时前
Maven 私有仓库-nexus
java
Minner-Scrapy11 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列
java·爬虫·python·scrapy·网络爬虫·twisted
晚风醉蝶11 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
夏天拐跑了西瓜11 小时前
Spring Cloud 微服务实战(三):一个服务挂了,凭什么拖垮整个系统?Sentinel 限流熔断实战
java·spring cloud·微服务
2601_9672642812 小时前
Jetpack Compose 实践指南:从入门到进阶
java·学习