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