JAVA中Iterator方法中有两种取值方法,例如Iterator<Student> it = list.iterator();

1>it.get(i);<2>it.next();JDK上看说明get(i)尽量少用,但这是为什么呢,这种取值方法相比较next()有什么弊端吗?请帮忙解决。... 1>it.get(i);<2>it.next();JDK上看说明get(i)尽量少用,但这是为什么呢,这种取值方法相比较next()有什么弊端吗?请帮忙解决。 展开
 我来答
帐号已注销
推荐于2018-05-13 · 超过26用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:68.3万
展开全部
Iterator由集合类通过工厂方法生成,方法中记录的存取方式有两种,一种是顺序存储,另一个是链接存储。如果你用for(int i)【这里比如for中的变量是i】然后get,i的值越就越慢(因为对于越往后面的值他都要统统找一边,知道找到那个下标为i的),但是用next就不一样,不后你的值有多大多深,他的next指针永远指向当前位置的下一个。比如你要找第1W个的那个值,你用for到9999的时候(9999之前的所有消耗暂且忽略不算)准备找第10000个了,现在确定是要找下标为10000的。虽然现在到了9999,但是他还是要从头找,如果是next,因为现在已经到了9999,而他的下一个刚好是10000,就很快。给你个例子,放了10层书,我现在你找到了第9层数数学,我要第十层的那本书,第一种的话,你已然要从头开始1,2,3层的数到第10层,但是next的话,你就知道哦,下一个就是我要的。(之前的那个10是用其他外部变量循环的来的,next就迭代器内部的)水平有限,不知道说的对不对。我是这样理解的。呵呵

你应该这样问,集合的get方法遍历值和用集合的迭代器遍历值,他们的利与弊。
shenaodong
2011-10-17 · TA获得超过960个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:801万
展开全部
迭代器是推荐模式,因为顺序查询,无需随机寻址,因而时间要快。不过对于普通应用程序而言,差别不大。
追问
也就是说,如果get(i)中得I是叠加的,效率是和用next()一样?
追答
也不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
herofire
2011-10-17 · 超过31用户采纳过TA的回答
知道答主
回答量:168
采纳率:0%
帮助的人:106万
展开全部
next效率远比get高
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式