集合(Collection)和数组(Array)
一、集合和数组的区别
区别1:
数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址。
集合在存储基本数据类型的时会自动装箱变成对象,故集合只能存储引用数据类型。
区别2:
数组长度固定,没有扩容操作。
集合的长度是不固定的,可以进行扩容。
二、数组和集合的选择
元素数量固定,用数组。(eg:选用容器保存10支溶液)
元素数量不固定,用集合。(eg:统计班级学生人员数据(可能存在退学或者转学生))
三、集合选择
存储元素有顺序,用List。(eg:按照学号统计全校学生数据)
存储元素希望自动去重,用Set。(eg:抢答答题,五个队伍先后都选择了一道题目,最先选择的队伍抢答成功)
存储元素适合key-value存放,用Map。(eg:查询数据库数据,返回ID+字段值)
四、List集合选择
ArrayList(Vector):更适合遍历查询。
LinkedList:更适合插入和删除。
Stack:数据满足"先进后出"规则。
五、Set集合选择
HashSet:自动去重且性能更高。
TreeSet: 自动去重,自动排序。
六、Map集合选择
HashMap:性能更高。
TreeMap: 自动排序。