我有包含字符串ID的集合idList。 函數getCollection返回單個ID項目集合(類型MyType)。此外,它可能會返回null。Java Stream:在列表中聚合所有非空集合在map()中
因此,對於idList中的許多ID,我會得到一些空值和一些集合。
我們的目標是收集所有getCollection對一組ID到最終列表的回覆。
我想象像
List<MyType> reply = idList.stream().map(id -> getCollection(id))
.filter(p -> p != null).collect(Collectors.toList());
,但它似乎並沒有被有效的表達。如何使其有效?
另外,這個實現的性能呢?
使用flatMap的原因的簡要說明也有助於他人理解 –
@ManuelS。如果你點擊藍色的flatMap鏈接,將會有一個關於flatMap的簡要說明。 – John
flatmap需要流getCollection()返回列表?也許你需要像這樣改變你的代碼...'stream()。map(id - > getCollection(id))。flatMap(List :: stream)' –