1.什么是集合
集合类存放于java.util包中。 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
集合类型主要有3种:set(集)、list(列表)和map(映射)。
集合接口分为:Collection和Map。list、set实现了Collection接口
2.各有什么特点
Collection两大体系:链表List、集合Set
List特点:元素有序;元素可以重复;元素都有索引(角标)。
List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。 因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。
Set特点:元素无序;元素不可以重复;
Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。
同时集合中还有另外一种类型:Map(映射)。
Map特点:键值对;键不可以重复;值可以重复;
Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。
3.数组和集合区别
数组特点:
1.数组本质上就是一段连续的内存空间,用于记录多个类型相同的数据;
2.数据一旦声明完毕,则内存空间固定不变;
3.插入和删除操作不方便,可能会移动大量的元素并导致效率太低;
4.支持下标访问,可以实现随机访问;
5.数组中的元素可以是基本数据类型,也可以使用引用数据类型。
集合特点:
1.内存空间可以不连续,数据类型可以不相同;
2.集合的内存空间可以动态的调整;
3.集合的插入删除操作可以不移动大量元素;
4.部分支持下标访问,部分不支持;
5.集合中的元素必须是引用数据类型(你存储的是简单的int,它会自动装箱成Integer);
可以看出数组和集合在数据的存储,访问,类型,长度等都有不同的地方。