一、什么是合集?
答:Java的合集框架支持以下两种类型的容器:
一种是为了存储一个元素合集,简称为合集(collection);
另一种是为了存储键值对,称为映射表(map),映射表使用一个键,快速搜索其对应的值,非常高效;
二、合集包含哪些内容?
答:Set用于存储一组不允许重复,无序的元素合集;
List用于存储允许重复,有序(指的是顺序存储元素)的元素合集;
Stack(栈类)用于存储采用先进后出的方式处理的对象;
Queue(队列)用于存储采用先进先出的方式处理的对象;
Priority Queue用于存储按照优先级顺序处理的对象;
三、合集框架的结构
答:以上的合集均是在接口中定义通用特性,之后由对应的抽象类来实现这些接口并提供部分实现,最后再由对应的子类用具体的数据结构实现接口;
四、Collection和Collections的区别
答:这里有一个基本的概念非常容易混淆:
Collection是位于 java.util 下的接口,处理对象合集的根接口,也就是所有合集框架的父接口;
Collections是 java.util 下的一个类,它包含各种有关合集操作的静态方法;
五、合集根接口—Collection
答:Collection接口是处理对象合集的根接口,除了add,size,iterator方法之外(这些方法会在合适的子类中实现0),Abstract-Collection类实现了该接口中的所有方法;
注意:
list1.retainAll(list2);
//执行上述命令后,list1中只会剩下list1和list2都有的元素
六、合集Cloneable接口和Serializable接口的支持
答:除了java.lang.PriorityQueue没有实现Cloneable接口外,合集框架中的其他所有具体类都实现了java.lang.Cloneable和java.lang.Serializable接口,所以除了优先队列外,所有的Cloneable的实例都是可克隆和序列化的;
七、迭代器和listIterator
public class Demo {
public static void main(String[] args) {
// 此处不能用C