使用for语句和while语句向前移动Iterator的区别

使用for语句和while语句向前移动Iterator的区别,第1张

使用for语句和while语句向前移动Iterator的区别

for循环的正确语法是:

for (Iterator it = ...; it.hasNext(); ){    //...}

(代码中的前面的声明以及for循环标题中的多余分号都是多余的。)

无论您使用此语法还是

while
循环,都取决于品味,两者的含义完全相同。for循环的通用语法为:

for (<init stmt>; <loop cond>; <iterate stmt>) { <body>; }

等效于:

<init stmt>;while (<loop cond>) { <body>; <iterate stmt>; }

编辑: 实际上, 如果
使用init语句声明了变量,则上述两种形式并不完全等效。在这种情况下,迭代器变量的范围将有所不同。对于for循环,在while循环的情况下,作用域仅限于循环本身,但是,作用域扩展到了封闭块的末尾(不足为奇,因为声明位于循环之外)。

另外,正如其他人指出的那样,在较新版本的Java中,for循环有一种简写形式:

for (Iterator<Foo> it = myIterable.iterator(); it.hasNext(); ) {    Foo foo = it.next();    //...}

可以写成:

for (Foo foo : myIterable) {    //...}

使用这种形式,您当然会丢失对迭代器的直接引用,这是必需的,例如,如果要在迭代时从集合中删除项目。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5498633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-13
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存