先来一张Collection类的“全家福”,方便大家理解类与类之间的关系:
(集合类库UML图来自于http://blog.csdn.net/vking_wang/article/details/16965853)
从图上可以看出来,集合大概可以分成2部分,一部分用Collection作为跟接口,另一部分用Map作为根接口。
我们先了解下Collection接口,Collection接口有方法(在1.8中新加入Stream方法,不作介绍):
可以注意到,接口中有一部分可选方法:add相关方法,clear,remove相关方法,retainAll方法。这些方法都会引起Collection结构发生改变。
Collection接口中给出了removeIf方法的默认实现:
default boolean removeIf(Predicate<? super E> filter) {//给removeIf方法