可以看到Abstract的层次结构,实现的接口有Iterable,Collection,Set,继承的类也是带有set结尾的名称,后续再看。AbstractSet的定位是提供一些要实现set接口的骨架,来减少你继承set接口的工作量。
实现的方法equals(Object o),先判断是否对象本身,然后判断是否继承set接口,继续判断size是否一致,再者containsAll方法遍历集合是否都包含。
然后看看hashCode的计算方式,获取迭代器,然后遍历增加每个对象的hashCode
还有一个removeAll(Collection> c)方法,会先判断入参是否为空,这里会先判断自身集合的与入参集合的大小,如果当前集合大,那么会遍历入参集合,否则遍历自身。
还有一个就是无参的构造函数。
好像这个抽象类干的事情不是很多,太多继承的AbstractCollection已经给我们定义了方法。
下节再续!