目录:
1、集合概述
1.1、集合?
集合(容器),主要由两类接口派生而来,分别是Collection
和Map
。
Collection主要存放单一元素,子接口List
、Set
、Queue
;Map主要存放key-value对
1.2、集合的特点以及为什么要使用集合
我们需要根据键值获取到元素值时就选用 Map
接口下的集合, 需要排序时选择 TreeMap
,不需要排序时就选择 HashMap
,需要保证线程安全就选用ConcurrentHashMap
;
当我们只需要存放元素值时,就选择实现 Collection
接口的集合,需要保证元素唯一时选择实现 Set
接口的集合比如 TreeSet
或 HashSet
,不需要就选择实现 List
接口的比如 ArrayList
或 LinkedList
.
当我们需要保存一组类型相同的数据的时候,我们应该是用一个容器来保存,这个容器就是数组,但是,使用数组存储对象具有一定的弊端, 因为我们在实际开发中,存储的数据的类型是多种多样的,于是,就出现了“集合”,集合同样也是用 来存储多个数据的。
1.3、集合和数组的区别
1、数据类型:数组既可以存储基本数据类型,又可以存储引用数据类型(基本数据类型存储的是值, 引用数据类型存储的是地址值)集合只能存储引用数据类型(对象), 集合中也可以存储基本数据类型,但是在存储的时候会自动装箱(JDK1.5新特性)变成对象。定义数组时必须指定数组元素类型,集合默认其中所有元素都是Object;
2、长度:数组的长度是固定的,集合长度是可以改变的;
3、获取:无法直接获取数组实际存储的元素个数,length
用来获取数组的长度,但可以通过size()
直接获取集合实际存储的元素个数;
4、实现方式:集合有多种实现方式和不同的适用场合,如List
,Set
,Map
等;而不像数组仅采用分配连续的空间方式;
5、效率:集合以接口和类的形式存在,具有封装,继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂的操作,大大提高软件的开发效率。