問(wèn)題描述
考慮以下場(chǎng)景.
List<String> list = new ArrayList<>();
現(xiàn)在我為這個(gè)列表添加了 String
值.
Now I added the String
values for this list.
我使用以下方法來(lái)遍歷列表中的每個(gè)元素.
I used following ways to go each and every element in the list.
選項(xiàng)一 - 使用 for-each
for (String i : list) {
System.out.println(i);
}
選項(xiàng)二 - 使用 Iterator
Iterator it=list.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
我只想知道如果我使用 for-each
而不是 Iterator
是否有任何性能優(yōu)勢(shì).現(xiàn)在在 Java 中使用 Iterator 是不是一種不好的做法?
I just want to know is there any performance advantage if I use for-each
instead of Iterator
. And also is it a bad practice to use Iterator now a days in Java?
推薦答案
for-each
是使用 iterators
的語(yǔ)法糖(方法 2).
for-each
is syntactic sugar for using iterators
(approach 2).
如果您需要在循環(huán)中修改集合,您可能需要使用 iterators
.第一種方法會(huì)拋出異常.
You might need to use iterators
if you need to modify collection in your loop. First approach will throw exception.
for (String i : list) {
System.out.println(i);
list.remove(i); // throws exception
}
Iterator it=list.iterator();
while (it.hasNext()){
System.out.println(it.next());
it.remove(); // valid here
}
這篇關(guān)于For-each 與迭代器.哪個(gè)會(huì)是更好的選擇的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!