对于每个vs迭代器。哪个是更好的选择

浏览:52日期:2024-02-21
如何解决对于每个vs迭代器。哪个是更好的选择?

for-each是要使用的语法糖iterators(方法2)。

iterators如果需要在循环中修改集合,则可能需要使用。第一种方法将引发异常。

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}解决方法

请考虑以下情形。

List<String> list = new ArrayList<>();

现在,我String为该列表添加了值。

我使用以下方法访问列表中的每个元素。

选项一-用途 for-each

for (String i : list) {System.out.println(i); }

选项二-用途 Iterator

Iterator it=list.iterator();while (it.hasNext()){ System.out.println(it.next());}

我只想知道如果我使用for-each代替,会有什么性能上的优势Iterator。而且现在在Java中使用Iterator也是一种不好的做法吗?

相关文章: