Tôi có một số Collection
các phần tử của một lớp tùy ý. Tôi muốn lặp qua bộ sưu tập và thực hiện một số hoạt động bằng cách sử dụng phần tử và mỗi phần tử khác của bộ sưu tập từng cái một (không bao gồm chính phần tử đó). Let it be List<Integer>
vì đơn giản:Luồng Java 8: xử lý mọi cặp yếu tố có thể có từ danh sách
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Với for
loops nó sẽ là:
for (Integer i : list) {
for (Integer j : list) {
if (!i.equals(j)) System.out.println(i * 2 + j); //just for example
}
}
Câu hỏi đặt ra là làm thế nào để làm điều đó với các Stream API?
Đó là những gì tôi đã đến:
list.stream().forEach(i ->
list.stream().forEach(j -> {
if (!i.equals(j)) System.out.println(i * 2 + j);
})
);
Nó không nhìn tốt hơn so với vòng lặp lồng nhau mặc dù. Có cách nào thanh lịch hơn không?