Tôi có đoạn mã sau và muốn thực hiện nó bằng các hàm lambda chỉ để giải trí. Nó có thể được thực hiện bằng cách sử dụng các phép toán tổng hợp cơ bản không?Làm thế nào để thực hiện lồng nhau 'if' báo cáo bằng cách sử dụng Java 8/lambda?
List<Integer> result = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
if (10 % i == 0) {
result.add(i);
if (i != 5) {
result.add(10/i);
}
}
}
Sử dụng lambda:
List<Integer> result = IntStream.rangeClosed(1, 10)
.boxed()
.filter(i -> 10 % i == 0)
// a map or forEach function here?
// .map(return 10/i -> if i != 5)
.collect(Collectors.toList());
Tôi thích cách bạn không chỉ trả lời câu hỏi mà còn dạy cách suy nghĩ về vấn đề để tìm ra giải pháp. – marcus