ListIterator中继承了Iterator。为什么还要将Iterator的方法重载一边呢?
另外concrete collection比如:ArrayLIst为什么在extends AbstractList之后还要去 implements list呢?
不晓得哪位大侠帮我解惑
jdk中容器源码的一些疑问
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- mingxuxu 2014-03-11 09:33关注
个人看法,可能不合理,仅供参考,以上是处于可读性的角度考虑的:
1)ListIterator:提供两个方向的迭代器,如果只有hasPrevious没有hasNext,可能看起来会比较奇怪,毕竟Iterator中的hasNext的语义是“单向”的判断,并不是“向前”的判断,但是ListIterator将HasNext作为向前判断的语义了。 又由于希望调用者能够将ListIterator看做是Iterator,所以做了继承。 去掉这个方法声明实际上是可以的(在方法声明、Javadoc解释方面做进一步明确化);
2)ArrayLIst implements List,让读者比较容易能够知道是这个接口关系,或许和javadoc生成有关系(这个没有测试过)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器