Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa Collection.stream (). ForEach () và Collection.forEach () trong Java

Collection.stream (). ForEach () và Collection.forEach () đều được sử dụng để lặp qua bộ sưu tập.

Collection.forEach () sử dụng trình vòng lặp của bộ sưu tập. Hầu hết các bộ sưu tập không cho phép sửa đổi cấu trúc trong khi lặp lại chúng. Nếu bất kỳ phần tử nào thêm hoặc bớt trong khi lặp lại, chúng sẽ ngay lập tức ném ra ngoại lệ sửa đổi đồng thời. Nếu Collection.forEach () đang lặp qua bộ sưu tập được đồng bộ hóa thì chúng sẽ khóa phân đoạn của bộ sưu tập và giữ nó trên tất cả các lệnh gọi.

Collection.stream (). ForEach () cũng được sử dụng để lặp lại bộ sưu tập nhưng trước tiên nó chuyển đổi bộ sưu tập thành luồng và sau đó lặp qua luồng của bộ sưu tập do đó thứ tự xử lý là không xác định. Nó cũng ném ngoại lệ sửa đổi đồng thời, nếu bất kỳ thay đổi cấu trúc nào xảy ra trong khi lặp lại chúng, nó sẽ ném ra ngoại lệ ngay lập tức.

Phím
Sr. Không.

Collection.forEach ()
Collection.stream (). forEach ()

1

Cơ bản

Collection.forEach () sử dụng trình lặp của bộ sưu tập

Collection.stream (). ForEach () cũng được sử dụng để lặp lại bộ sưu tập nhưng trước tiên nó chuyển đổi bộ sưu tập thành luồng và sau đó lặp qua luồng của bộ sưu tập

2

Đặt hàng

Nó luôn được thực thi theo thứ tự lặp lại của Lặp lại, nếu một trong số đó được chỉ định.

Đơn hàng không được xác định

3

Khóa

Nếu lặp lại đang diễn ra trên bộ sưu tập đã đồng bộ hóa thì Nó sẽ khóa bộ sưu tập và giữ nó trên tất cả các lệnh gọi

Nó không khóa bộ sưu tập

4.

Ngoại lệ

Nó sẽ ngay lập tức đưa ra một ngoại lệ trong trường hợp có bất kỳ sửa đổi cấu trúc nào xảy ra trong bộ sưu tập

Ngoại lệ sẽ được đưa ra sau

Ví dụ Collection.stream (). forEach

import java.util.ArrayList;
import java.util.List;
public class Main {
   public static void main(String[] args) {
      List list= new ArrayList();
      list.add("Ram");
      list.add("TutorialPoints");
      list.stream().forEach(System.out::print);
   }
}

Collection.forEach mẫu

import java.util.ArrayList;
import java.util.List;
public class Main {
   public static void main(String[] args) {
      List list= new ArrayList();
      list.add("Ram");
      list.add("TutorialPoints");
      list.forEach(System.out::print);
   }
}