abstractset java_看看抽象类AbstractSet源码

5b6c80fb8e5f0d6f45a8aa7b466d76c1.png

可以看到Abstract的层次结构,实现的接口有Iterable,Collection,Set,继承的类也是带有set结尾的名称,后续再看。AbstractSet的定位是提供一些要实现set接口的骨架,来减少你继承set接口的工作量。

实现的方法equals(Object o),先判断是否对象本身,然后判断是否继承set接口,继续判断size是否一致,再者containsAll方法遍历集合是否都包含。

5dd8599a6a3b413c08028e9db5e9b72d.png

然后看看hashCode的计算方式,获取迭代器,然后遍历增加每个对象的hashCode

95c9088e2680232fdd919815df0b6876.png

还有一个removeAll(Collection> c)方法,会先判断入参是否为空,这里会先判断自身集合的与入参集合的大小,如果当前集合大,那么会遍历入参集合,否则遍历自身。

f897cfec3854856bd2f128e803687fb7.png

还有一个就是无参的构造函数。

1d1cd4e81ed1ec82f5922e51b4993be9.png

好像这个抽象类干的事情不是很多,太多继承的AbstractCollection已经给我们定义了方法。

下节再续!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值