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

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 来赋值
相关推荐
哆啦A梦15881 小时前
11,Springboot3+vue3个人中心,修改密码
java·前端·javascript·数据库·vue3
小则又沐风a1 小时前
C++模板进阶
java·服务器·前端·c++
段ヤシ.1 小时前
回顾Java知识点,面试题汇总Day3(持续更新)
java·开发语言·windows
woai33642 小时前
项目-轻客管家1-环境准备
java
xqqxqxxq9 小时前
Java AI智能P图工具技术笔记
java·人工智能·笔记
谷雨不太卷9 小时前
进程的状态码
java·前端·算法
顾温9 小时前
default——C#/C++
java·c++·c#
空中海10 小时前
02 ArkTS 语言与工程规范
java·前端·spring
楚国的小隐士10 小时前
在AI时代,如何从0接手一个项目?
java·ai·大模型·编程·ai编程·自闭症·自闭症谱系障碍·神经多样性