一、普通for循環遍歷list
以往我們習慣使用for循環遍曆數組或者List集合。在ArrayList遍歷中,我們通常採用普通的 for 循環,通過 size() 來獲取 ArrayList 的長度,然後使用 get(i) 方法來獲取指定下標的元素。
List list = new ArrayList();
list.add("Apple");
list.add("Pear");
list.add("Peach");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
由於ArrayList內部是一個數組來存儲元素,所以用普通for循環遍歷時,會隨着元素增多而逐漸變慢,因為每次get有一次定位的過程,數組越長,定位時間越長。
二、增強for循環遍歷list
jdk1.5之後增加了”增強for語法”,也稱為 “foreach”。” 增強for循環可以遍歷任何 collection 或者 數組,也稱為 For-each 循環,語法如下:
List list = new ArrayList();
list.add("Apple");
list.add("Pear");
list.add("Peach");
for (String fruit : list) {
System.out.println(fruit);
}
此時會直接取得元素值。
三、通過iterator循環來遍歷list
基本步驟: 先讓迭代器指向第一個元素,然後只要迭代器能夠找到下一個元素就一直往下迭代。迭代器提供了remove() 方法,可以讓程序員在迭代期間從 underlying collection 中 安全刪除元素。
List list = new ArrayList();list.add("Apple");list.add("Pear");list.add("Peach");Iterator it = list.iterator();while (it.hasNext()) { System.out.println(it.next());}
四、forEach方法遍歷list
Java8對collection接口增加了一個forEach()方法,它有一個Consumer類的參數。該方法可以讓我們通過Lambda表達式來遍歷集合,使代碼變得簡潔易讀。
List list = new ArrayList();
list.add("Apple");
list.add("Pear");
list.add("Peach");
list.forEach(fruit -> System.out.println(fruit));
五、高效的集合遍歷方式
另一種比較高效的遍歷方式是使用for each-loop中的變量進行遍歷,可以使用流式編程進行效率優化。
List list = new ArrayList();
list.add("Apple");
list.add("Pear");
list.add("Peach");
list.stream().forEach(fruit -> System.out.println(fruit));
六、使用parallelStream方法遍歷list
在使用Java 8中新增的方法parallelStream時,可以開啟並行流遍歷,加快集合遍歷速度。parallelStream是在Stream中使用的,只有順序存在依賴性才能被並行計算,stream與parallelStream的切換並不影響數據內容,只會影響遍歷方式。
List list = new ArrayList();
list.add("Apple");
list.add("Pear");
list.add("Peach");
list.parallelStream().forEach(fruit -> System.out.println(fruit));
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/187495.html