一、for循環遍歷List集合
public static void traverseWithFor(List list) {
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
使用for循環遍歷List集合是最常見的遍歷方式。通過for循環的索引值,可以依次獲取到List集合中的每個元素。但是,for循環有一個缺點就是在遍歷期間不能進行刪除和新增操作,否則就會出現ConcurrentModificationException異常。
二、增強for循環遍歷List集合
public static void traverseWithEnhancedFor(List list) {
for(Object obj: list) {
System.out.println(obj);
}
}
增強for循環也可以遍歷List集合,語法更簡潔。與for循環不同的是,在遍歷期間增強for循環無法進行刪除和新增操作,同樣會出現ConcurrentModificationException異常。
三、迭代器遍歷List集合
public static void traverseWithIterator(List list) {
Iterator<Object> iterator = list.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
通過Iterator接口也可以遍歷List集合。Iterator接口提供了hasNext()和next()方法,通過hasNext()方法判斷是否還有元素,如果有則通過next()方法獲取下一個元素。與for循環和增強for循環不同的是,迭代器遍歷List集合期間可以進行刪除和新增操作。
四、列表迭代器遍歷List集合
public static void traverseWithListIterator(List list) {
ListIterator<Object> iterator = list.listIterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
列表迭代器也是一種可以遍歷List集合的方式,相對於迭代器遍歷List集合,列表迭代器可以雙向遍歷List集合,即向前或向後遍歷。
五、Lambda表達式遍歷List集合
public static void traverseWithLambda(List list) {
list.forEach(System.out::println);
}
Java 8引入了Lambda表達式,使用Lambda表達式可以更加簡潔地遍歷List集合。list.forEach()方法可以通過Lambda表達式的形式提供一個函數式接口,對List集合的每個元素進行操作。
六、小結
對於List集合的遍歷,我們可以使用多種方式來實現。其中,for循環和增強for循環應該是最常見的方式,因為它們的代碼量較少,易於理解。但是,迭代器和列表迭代器的可刪除和新增操作極大地提高了集合的可操作性。
不過,在使用迭代器和列表迭代器遍歷List集合時需要小心,如果在遍歷期間進行刪除或新增操作,就有可能會出現ConcurrentModificationException異常,因為這兩種遍歷方式內部都有一個修改次數的計數器,一旦發現計數器被修改,就會拋出異常。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/197555.html