能夠看到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