面试题:Iterator接口为什么没有add方法?

AI传道士 2014-06-12 03:00:38
如题,请神牛解释!!!!!!!!!
...全文
693 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
KenzieChen 2015-06-15
  • 打赏
  • 举报
回复
引用 8 楼 zapdos 的回复:
ListIterator就有这个方法 有的不需要add的就用Iterator,否则就用ListIterator好了,职责分明一点 不然全部方法写到一个接口里,岂不方便
嗯,职责分明确实很重要!
alexander0729 2014-06-13
  • 打赏
  • 举报
回复
iterator枚举器, 是用来迭代的,在迭代的过程中, 如果允许增加, 那么会对现在的可枚举队列造成负面影响,就是说,要增加的这个要放在什么位置,这是其一,而且为了保证这个枚举的过程是可结束的, 所以允许删除,不允许增加 我不懂java, 但是从原理上来说,枚举的规模必须是可确定的
whos2002110 2014-06-13
  • 打赏
  • 举报
回复
remove()是移除当前迭代游标处的元素,这很好理解:我迭代到某个元素,看他不爽把它踢了。但是add(),怎么做? 在当前迭代的前面还是后面add,或者在集合最后? 要add的元素哪里来? 难道: 我迭代到某个元素,我爽了在末尾加一个新的? 它是迭代器,这种功能给它不是很奇葩么?
kiyoki 2014-06-13
  • 打赏
  • 举报
回复
假设我的是一个 map.values的iterator 你能够add什么? add value不add key吗?
AI传道士 2014-06-12
  • 打赏
  • 举报
回复
引用 8 楼 zapdos 的回复:
ListIterator就有这个方法 有的不需要add的就用Iterator,否则就用ListIterator好了,职责分明一点 不然全部方法写到一个接口里,岂不方便
ListIterator我知道,有没有更深层次的原因呢?
zapdos 2014-06-12
  • 打赏
  • 举报
回复
ListIterator就有这个方法 有的不需要add的就用Iterator,否则就用ListIterator好了,职责分明一点 不然全部方法写到一个接口里,岂不方便
AI传道士 2014-06-12
  • 打赏
  • 举报
回复
引用 5 楼 chihaukam 的回复:
这些问题不用问的,
为啥不用问???
AI传道士 2014-06-12
  • 打赏
  • 举报
回复
AI传道士 2014-06-12
  • 打赏
  • 举报
回复
引用 2 楼 yunchao630 的回复:
就像两个指针不能加一样
??????????????
AI传道士 2014-06-12
  • 打赏
  • 举报
回复
引用 1 楼 ggglivw 的回复:
add方法是啥米意思??反正2个++的含义是指向下一个迭代~
查看Iterator接口的源码可以发现,里边是有remove方法的,也就是为什么Iterator接口规定可以删除元素,但是却不可以添加元素呢?java的设计者为什么会这样设计?他们的初衷在哪?是设计上有问题吗还是有其他深意,不明白,求解。。。。。。。。。。
翅膀又硬了 2014-06-12
  • 打赏
  • 举报
回复
就像两个指针不能加一样
ggglivw 2014-06-12
  • 打赏
  • 举报
回复
add方法是啥米意思??反正2个++的含义是指向下一个迭代~

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧