1
回答
JDK集合框架源码设计问题?
华为云4核8G,高性能云服务器,免费试用   

最近闲来无聊想仔细看看JDK集合框架的源码,虽然对于集合一些数据结构底层原理也非常清楚,但是却没有仔细看过源码,刚看就发现JDK的一个设计问题,大家一起谈谈自己的看法?

为什么像Vector、ArrayList等类 既extends了List接口实现类AbstractList,又实现了List接口,理论上implements List 就不需要写了不是么~~。

接图:

然后还有一点可以看到,Collection接口extends Iterable接口,理论上Collections接口是不用显示的写

Iterator<E> iterator()方法的,因为这个方法在Iterable<E>定义的,看图

坐等大神解答,欢迎拍砖,谢谢。

举报
Ambitor
发帖于3年前 1回/201阅
共有1个答案 最后回答: 3年前

个人觉得其实都是冗余的代码可以去掉。加上这些,是为了更好阅读吧。比如看见ArrayList就知道它implements 了List接口而不用再去点开AbstractList查看。


--- 共有 2 条评论 ---
狐狸糊涂回复 @Ambitor、石头 : 有时候多余的代码是为了能更好的阅读,毕竟代码不仅仅是给机器读的。不过针对JCF的这个问题,我估计只有作者能回答了,JCF整个包里面很多都是这种实现方式。你可以看看HashMap,HashSet等其他容器类的实现。 3年前 回复
Ambitor太奇怪了,也太无厘头了,如果为了这种方便,那还要继承有个啥意思?你觉得呢? 3年前 回复
顶部