本文主要讲Collection接口以及一些常见的关于Collection接口的面试问题。下面将从以下几个方面阐述问题。
1. 集合是什么?
集合是什么呢?集合是一种容器,Java集合框架支持两种类型的容器,一是集合(Collection),另外一种是图(Map)。容器是用来存储其他对象的对象。
2. 集合的特点:
- 用于存储对象的容器,即集合中存储的元素是对象。
- 集合的长度是可变的。
- 集合是不可以存储基本数据类型的。(集合存储基本数据类型时会先进行自动封装成其对应的对象后再进行存储)
3. 集合框架中的三大类型集合:
- List:线性表。存储由元素构成的有序集合,允许重复。
- Set:规则集。用于存储一组不重复的元素。
- Queue:队列。用于存储处理先进先出的对象。
集合框架图如下图所示:
List、Set、Queue都继承了Collection接口。Collection接口继承Iterable接口,Iterable中有Iterator接口属性,Iterator是一个迭代器,体现了设计模式中的迭代器模式。
4. 常见的面试题
- 集合框架是什么?有什么好处?
集合框架是存储对象的对象,为对象提供了便捷的存储和操作方式。好处是:使用核心的集合类,可以大大减少我们的工作量;提高了代码质量;减少代码维护;可重用性和互操作性。 - Collection和Collections的区别?
Collection是集合接口,Collections是一个包装类,在util包下,它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。 - Collection的子类?Collections.sort排序内部原理?Collections中常见的方法?
Collection子类包括List、Set、Map。sort排序的内部原理是采用快速排序。Collections中常见方法还有同步方法,二分查找,倒置,最大值,最小值,addAll等。