Tôi có idList bộ sưu tập chứa ID chuỗi. Trả về tính năng getCollection cho ID duy nhất một tập hợp các mục (loại MyType). Ngoài ra, nó có thể trả về null.Dòng Java: tổng hợp trong danh sách tất cả các tập hợp không phải Null nhận được trong bản đồ()
Vì vậy, đối với nhiều ID từ idList, tôi sẽ nhận được một số giá trị rỗng và một số bộ sưu tập.
Mục tiêu là thu thập tất cả các trả lời của getCollection cho một bộ ID vào Danh sách cuối cùng.
Tôi đã tưởng tượng cái gì đó như
List<MyType> reply = idList.stream().map(id -> getCollection(id))
.filter(p -> p != null).collect(Collectors.toList());
nhưng nó dường như không phải là một biểu thức hợp lệ. Làm thế nào để làm cho nó hợp lệ?
Ngoài ra, điều gì về hiệu suất của việc triển khai này?
Giải thích ngắn gọn về lý do sử dụng flatMap cũng sẽ giúp người khác hiểu được –
@ManuelS. nếu bạn nhấp vào liên kết flatMap, có màu xanh dương, sẽ có một giải thích ngắn gọn về flatMap. – John
flatmap yêu cầu dòng getCollection() trả về danh sách? có thể bạn cần phải thay đổi mã của bạn như thế này ... 'stream() bản đồ (id -> getCollection (id)). flatMap (Danh sách :: dòng)' –