1. 什么是集合框架
集合框架: 用于存储数据对象引用的容器。
集合框架是为表示、操作集合而规定的一种统一的、标准的体系结构。 任何集合框架都包含三大块内容:①对外的接口、②接口的实现、③对集合运算的算法。
接口: 表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象编程语言中,接口通常用来形成规范。
实现: 集合接口的具体实现,是重用性很高的数据结构。
算法: 在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函数。 它减少了程序设计的辛劳。
集合框架通过提供有用的数据结构和算法使你能集中注意力于你的程序的重要部分上,而不是为了让程序能正常运转而将注意力于低层设计上。 通过这些在无关API之间的简易的互用性,使你免除了为改编对象或转换代码以便联合这些API而去写大量的代码。 它提高了程序速度和质量。
2. 集合的特点
当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。 集合类型主要有3种:set(集)、list(列表)和map(映射)。 在编写程序的过程中,使用到集合类,要根据不同的需求,来决定使用哪种集合类,比如,要经常遍历集合内元素,就要使用List,如果要保证集合中不存在重复的数据,就要用Set;如果要通过某一键来查找某一值,就要使用Map
- 对象封装数据,对象多了也需要存储,而集合就是储存对象的;
- 对象的个数确定的话可以使用数组存储;对象个数不确定的话可以使用集合储存,因为集合是可变长度的;
- 集合中存放的是对象的引用
3. 集合和数组的区别
(1)长度区别:集合长度可变,数组长度不可变
(2)内容区别:集合可存储不同类型元素,数组存储只可单一类型元素
(3)元素区别:集合只能存储引用类型元素,数组可存储引用类型,也可存储基本类型
4. 使用集合的好处
- 容量自增长;
- 提供了高性能的数据结构和算法,使得编码更加轻松,提高的程序速度和质量;
- 允许不同API之间相互操作,不同API之间可以来回传递集合;
- 可以方便地扩展和改写集合,提升代码的复用性和操作性;
- 通过使用JDK自带的集合类,降低代码的维护性和学习新API成本;