数组和集合有什么区别?
最核心的区别:
数组长度固定;集合长度可以动态变化。
例如数组:
int[] arr = new int[3];创建的时候长度就是 3,后面不能直接扩成 10。
集合:
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);可以动态增加、删除元素。
除此之外:
| 对比 | 数组 Array | 集合 Collection |
|---|---|---|
| 长度 | 固定 | 动态变化 |
| 存储基本类型 | ✅ 可以 | ❌ 只能存对象,基本类型需装箱 |
| 存储对象 | ✅ | ✅ |
| 泛型 | ❌ | ✅ |
| 功能 | 比较基础 | 增删改查、排序等 API 丰富 |
| 性能/开销 | 通常更直接、开销小 | 功能丰富,但有额外封装开销 |
例如:
int[] arr = {1, 2, 3};可以直接保存 int。
但:
List<Integer> list = new ArrayList<>();
list.add(1);实际上涉及:
int
↓ 自动装箱
Integer
↓
List<Integer>面试回答
数组和集合都可以用于存储一组数据。主要区别是数组创建后长度固定,而集合大小可以动态变化;数组既可以存基本数据类型也可以存对象,而集合只能存对象,基本类型需要通过包装类进行自动装箱。另外集合支持泛型,并且提供了更加丰富的增删改查等 API,因此实际业务开发中使用更加灵活。