如何迭代Java ArrayList
时间:2020-01-09 10:35:00 来源:igfitidea点击:
在本文中,我们将介绍在Java中迭代ArrayList的不同方法。迭代ArrayList的选项如下:
- 使用普通的for循环
- 使用For-Each循环(Advanced for循环),可从Java 5获得
- 使用Iterator或者ListIterator(仅当我们要向前和向后迭代而不是顺序循环ArrayList时,才使用ListIterator)。
- 使用Java 8提供的forEach语句
在Java示例中迭代ArrayList
这是一个Java示例代码,显示了上述所有循环ArrayList的方法。
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class ArrayListIteration { public static void main(String[] args) { List<String> nameList = new ArrayList<String>(); // adding elements nameList.add("Adam"); nameList.add("Amy"); nameList.add("Jim"); nameList.add("Leo"); System.out.println("**Iterating using normal for loop**"); for(int i = 0; i < nameList.size(); i++){ System.out.println("Name-- " + nameList.get(i)); } System.out.println("**Iterating using For-Each loop**"); for(String name : nameList){ System.out.println("Name- " + name); } System.out.println("**Iterating using Iterator**"); // getting iterator Iterator itr = nameList.iterator(); while(itr.hasNext()){ System.out.println("Name- " + itr.next()); } System.out.println("**Iterating using ListIterator**"); ListIterator ltr = nameList.listIterator(); while(ltr.hasNext()){ System.out.println("Name- " + ltr.next()); } System.out.println("**Iterating using forEach statement**"); nameList.forEach((n)->System.out.println("Name - " + n)); } }
输出:
**Iterating using normal for loop** Name-- Adam Name-- Amy Name-- Jim Name-- Leo **Iterating using For-Each loop** Name- Adam Name- Amy Name- Jim Name- Leo **Iterating using Iterator** Name- Adam Name- Amy Name- Jim Name- Leo **Iterating using ListIterator** Name- Adam Name- Amy Name- Jim Name- Leo **Iterating using forEach statement** Name - Adam Name - Amy Name - Jim Name - Leo
因此,这些是用于在Java中迭代ArrayList的选项。如果只想按顺序遍历列表,则for-each循环是最佳选择。如果要在迭代时进行修改,则应使用Iterator或者ListIterator,否则对列表进行的任何结构修改都将导致抛出ConcurrentModificationException。