Java是目前最受歡迎和廣泛使用的編程語言之一,它提供了兩種處理集合的方式:迭代和Stream。那么這兩種方式哪個更快呢?在下面的代碼比較中,我們將使用迭代和Stream對一個整型列表進行遍歷和操作。
使用迭代進行遍歷
Listlist = Arrays.asList(1, 2, 3, 4, 5); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
以上代碼使用for循環和get方法對整型列表進行遍歷。結果輸出列表中的每個元素。
使用Stream進行遍歷
Listlist = Arrays.asList(1, 2, 3, 4, 5); list.stream().forEach(System.out::println);
以上代碼使用Stream的forEach方法輸出整型列表中的所有元素。這種方式比較新,它使用了一種類似于函數式編程的風格。
使用迭代進行篩選和累加
Listlist = Arrays.asList(1, 2, 3, 4, 5); int sum = 0; for (int i = 0; i < list.size(); i++) { if (list.get(i) % 2 == 0) { sum += list.get(i); } } System.out.println(sum);
以上代碼使用for循環和get方法對列表中的所有偶數進行篩選和累加。結果輸出列表中所有偶數的和。
使用Stream進行篩選和累加
Listlist = Arrays.asList(1, 2, 3, 4, 5); int sum = list.stream().filter(i ->i % 2 == 0).mapToInt(Integer::intValue).sum(); System.out.println(sum);
以上代碼使用Stream的filter和mapToInt方法對列表中的所有偶數進行篩選和映射,然后計算它們的總和。
比較
通過上面的代碼比較,可以發現使用Stream的方式相比于使用迭代的方式更加簡潔和清晰。Stream的鏈式操作使我們可以更加方便地進行多個操作。此外,當列表比較大時,使用Stream可以通過并行處理提高執行效率。
綜上所述,Stream的性能比迭代更好,并且Stream的代碼更加簡潔和清晰。