问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java iterator循环遍历集合(比如HashSet)的原理

发布网友 发布时间:2022-05-05 17:46

我来回答

3个回答

热心网友 时间:2022-04-22 17:57

Iterator<String> it = set.iterator() 这时得到一个迭代器,它的指针位于第一个元素之前。
然后我们不停地 hasNext() 再 next 得到值,当hasNext 为 false 时当然就不能去 next 了。

这背后的位置索引是在迭代器内部记录着的,我们不能直接改它的值,只能 next 去下一个。
不过像 ListIterator 则是双向的,可以 previous。递增递减都是由 next / previous 方法来操作的。追问我就是不知道这个迭代器(it)是怎么移动的在这个循环遍历中,我打印它,它一直是一样的,然后我以为只要成功调用了next()这个函数,它内部就会自动向下指,可是并没有,你看我的问题补充,然后我就想,难道是配合hasNext(),再用next(),内部才会这样实现?我知道了,应该就是调用一次next(),它内部就会指向下一个,就好像编译器自己产生了一个内部游标(并非it,)在执行指向功能

追答正确,这点就是跟C++不同的地方,it 本身并没有变,而 it 内部的一个 index 变化了。

热心网友 时间:2022-04-22 19:15

如果你用的是eclipse,按住ctrl键,鼠标左键点next()方法就能看到了,然后关联JDK源码就可以了追问我看了帮助文档,完全没用

追答next()方法是返回下一个元素。
hasNext();判断后面还有没有元素。
改成这样就好了
String str=it.next();
System.out.println(str);
System.out.println("sss"+str);

比如1,2,3,4,5五个元素
当前元素为2,通过next()方法返回3之后,当前元素就是3了;在调用一次next()返回的就是4了。

热心网友 时间:2022-04-22 20:50

it相当于是个指针,每次.next()都向下拨打。所以依次输出追问每一次只要有it.next()出现,实际上就等于让it指向下一个了?可是我看next()的说明,只是说返回了下一个元素啊,并没有说同时让it指向了下一个元素(类似于it=it.nextIterator())?哪里能够看到next()具体实现的代码?

追答只看结果不看说明。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小鹏交付怎么评分 2024年5月趋乾黄道吉日 2024年5月哪天适合趋乾 2024年6月词讼黄道吉日 2024年6月哪天适合词讼 2024年8月成服黄道吉日 2024年8月哪天适合成服 2024年8月26日黄道吉日 百度识图在线识别这个人是 百度怎样识别明星是谁? 海绵城市都建什么 包钢股票前景如何 600010包钢股份这支股票我现在被套百分之六了,后市该怎么操作,适合做长 ... 在java中集合的遍历是怎样遍历的 冬季,在一个五星级酒店可以给客人什么样的超前服务? JAVA Set Iterator遍历的顺序是怎么样的? 五星级酒店有什么不被发现的免费服务? 本命星盘看哪些女生天生福气深厚 java 关于set集合遍历的问题。我打印不出学生信息怎么办?? 求一部小说,广告里看到的,说重生在即将过门的毁容王妃身上,而且王爷病重,还好她前世是毒医 Java:迭代器遍历Set集合 java中遍历SET 三星四星五星级酒店有些什么康乐服务 求高手看本命星盘相位,分析个性以及命理~! 谁能帮忙看一下我的本命星盘啊?网上测了一个,但是看不懂,跪求大神帮忙解释下,谢谢 急求外贸纺织公司的实习周记,需要多份 想要关于报关报检方面的 本命星盘 笔记本是dell inspiron 操作系统是win7 复制后clipbrd没内容 不能复制粘贴 五星级酒店特色服务项目有哪几种? 笔记本ctrl相关的组合键用不了了、比如复制粘贴之类的功能、但是用外插键盘这些功能都可以用,求助! 2009年7月8日月亮空亡? 苦菜花苦不苦 怎样恢复被禁止的复制粘贴快捷键 五星酒店应有五星服务。 java怎样在页面遍历list并排序 创新科技产品认证如何办理 java怎么遍历一个盘下的所有文件 Java创建list和set 添加元素,遍历集合怎么做 java 如何反射 如何遍历 entity 中的 get 值并 set 值 JAVA编程题 HashSet存储任意三个字符串,并遍历(增强for遍历) java 语言里 遍历 collection 的方式 是怎样? 灵芝有什么功效?怎么吃作用大?泡水喝能加蜂蜜吗?它跟人参比,哪个对缓解疲劳更有作用? 睡觉爱做梦喝人参灵芝泡水好么? 人参,灵芝,枸杞泡酒或炮泡水的功效 灵芝和田七在和和人参磨碎一起泡茶喝可以吗 手机充电器放电怎么维修 潘长江为什么突然破产了?他应该是很有钱的呀?他发生了什么事?他女儿情况又怎么样? 潘长江事件连累到女儿被骂,潘阳也牵连其中,发生了什么? 关于2014年下半年天津教师资格证的报考条件 Win7下安装Oracle11g报错 8人英语配音电影 6人的英语配音 闲鱼上那些被赞数99+,留言数99+,是怎么做到的