一,集合的由来:
数组长度是固定的,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,Java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素增加而增加,随元素减少而减少
数组与集合的区别:
1:基本数据类型存储的是值,引用数据类型存储的是地址值
数组既可以存储基本数据类型,又可以存储引用型数据类型
集合只能存储引用型数据类型(对象),集合中也能存储基本数据类型,但是存储的时候会自动封箱变成对象
2:数组的长度是固定的,不能自动增长的
集合长度是可变的,可以根据元素的增长而增长
3:使用情况
1.元素个数固定推荐使用数组
2.元素个数不固定推荐使用集合
二,如何选用集合??
当遇到集合问题时往往不知如何选择集合,主要根据集合特点来选择,比如我们需要根据键值获取到元素值时就选用Map接口下的集合,需要排序时选择TreeMap,不需要排序时就选择HashMap,需要保证线程安全的就选用ConcurrentHsahMap。当我们只需要存放元素值时,就选择实现Collection接口的集合,需要保证元素唯一时选择实现Set接口的集合,比如TreeSet或HashSet,不需要