集合(Collection)和数组(Array)
一、集合和数组的区别
区别1:
-
数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值。
-
集合只能存储引用数据类型(对象)。集合也能存储基本数据类型(有点矛盾,看后句),但是在存储的时候会自动装箱变成对象。
区别2:
-
数组长度是固定的,不能自动增长。
-
集合的长度是可变的,可以根据元素的增长而增长。
二、集合和数组什么时候用
1、如果元素个数是固定的推荐用数组,效率高。
2、如果元素个数不是固定的推荐用集合
三、集合和数组什么时候用的原因
部分集合内部是用数组实现(当然还有是哈希,二叉树等),当每次创建一个集合对象是,默认创建10个长度的数组。当添加到第11个时,它会按照原数组1.5倍创建,在把原来的数组值复制过去,原来10长度的数组将变成垃圾被回收。当添加到16或者更多,以后都是按照原数组1.5倍创建,复制这个过程。所以,当固定长度为100的时候,你选择了集合就是低效率,选择数组就是高效率,因为集合里面有很多创建,复制,销毁过程。