Java集合和数组的区别、选用及其原因

时间:2025-04-10 10:27:29

集合(Collection)和数组(Array)


一、集合和数组的区别

区别1:
  • 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值。

  • 集合只能存储引用数据类型(对象)。集合也能存储基本数据类型(有点矛盾,看后句),但是在存储的时候会自动装箱变成对象

区别2:
  • 数组长度是固定的,不能自动增长。

  • 集合的长度是可变的,可以根据元素的增长而增长。


二、集合和数组什么时候用

 1、如果元素个数是固定的推荐用数组,效率高。

 2、如果元素个数不是固定的推荐用集合


三、集合和数组什么时候用的原因

部分集合内部是用数组实现(当然还有是哈希,二叉树等),当每次创建一个集合对象是,默认创建10个长度的数组。当添加到第11个时,它会按照原数组1.5倍创建,在把原来的数组值复制过去,原来10长度的数组将变成垃圾被回收。当添加到16或者更多,以后都是按照原数组1.5倍创建,复制这个过程。所以,当固定长度为100的时候,你选择了集合就是低效率,选择数组就是高效率,因为集合里面有很多创建,复制,销毁过程。

相关文章