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
Bài viết đã được điều chỉnh lại. Đọc dễ hơn hẳn. Cảm ơn tác giả
Em cảm ơn thầy ạ :D