Cách sử dụng if/else trong Stream Java 8

10 tháng 09, 2022 - 1038 lượt xem

Cách sử dụng if/else trong Stream Java 8

Người dịch : Nguyễn Minh Tuấn
Email liên hệ : tuann.nm241@gmail.com
Bài viết gốc : https://www.baeldung.com/java-8-streams-if-else-logic

1. Tổng quan

Trong bài này , chúng ta sẽ tìm hiểu logic if/else của Java 8 Streams. Chúng ta sẽ tạo một ví dụ đơn giản là tìm những số chẵn và lẻ.
Các bạn có thể tìm hiểu về Stream cơ bản tại đây.

2. If/esle bên trong forEach()

Đầu tiên, tạo 1 Interger List , sau đó sẽ sử dụng if/else bên trong phương thức forEach() của Stream:

public static void main(String[] args) {

        List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        List<Integer> oddNums = new ArrayList<>();
        List<Integer> evenNums = new ArrayList<>();

        ints.stream()
                .forEach(
                        i -> {
                            if (i % 2 == 0) {
                                evenNums.add(i);

                            } else {
                                oddNums.add(i);
                            }
                        }
                );


        System.out.println("oddNums: " + oddNums);
        System.out.println("evenNums: " + evenNums);

    }
}

Kết quả :

oddNums: [1, 3, 5, 7, 9]
evenNums: [2, 4, 6, 8, 10]

Phương thức forEach bao gồm if-else logic để tìm ra được những số chẵn và lẻ.

3. If/else bên trong Filter()

Tiếp theo, chúng ta sẽ cùng xem ứng dụng của if/else được thực hiện trong Filter():

   public static void main(String[] args) {
        List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        Stream<Integer> evenNums = ints.stream().filter(i -> i % 2 ==0);
        Stream<Integer> oddNums = ints.stream().filter(i -> i % 2 !=0);

        System.out.println("oddNums: " + oddNums.toList());
        System.out.println("evenNums: " + evenNums.toList());


    }

Kết quả :

oddNums: [1, 3, 5, 7, 9]
evenNums: [2, 4, 6, 8, 10]

Ở trên chúng ta thực hiện if-else logic sử dụng phương thức Stream filter() để chia Integer List ban đầu thành 2 Stream , 1 Stream chứa số chẵn, 1 Stream chứa số lẻ.

4. Kết luận

Trong ví dụ trên , chúng ta đã tìm hiểu về cách tạo Stream trong Java 8 và sử dụng phương thức forEach() để triển khai if-else logic.
Hơn nữa , chúng ta còn tìm hiểu về phương thức filter() của Stream để giải quyết 1 bài toán đơn giản.

Bình luận

avatar
Trịnh Minh Cường 2022-09-10 04:43:35.139887 +0000 UTC

Bài viết đã được điều chỉnh lại. Đọc dễ hơn hẳn. Cảm ơn tác giả

Nguyễn Minh Tuấn
Nguyễn Minh Tuấn 2022-09-10 08:02:24.792759 +0000 UTC

Em cảm ơn thầy ạ :D

Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  +1 Thích
+1