簡體   English   中英

從對象列表中獲取聚合的屬性列表(Java 8)

[英]Get aggregated list of properties from list of Objects(Java 8)

我有一個類Division其為具有清單Section財產如下

class Division {
    private List<Section> sections;
    // respective getters and setters
}

假設我有一個分區列表,我想得到一個匯總的章節列表,我知道可以使用常規方法完成,如下所示。

List<Division> divisions = getDivisions();
List<Section> sections = new ArrayList<>();
for (Division division : divisions) {

    sections.addAll(division.getSections());
}

我想知道是否有任何方法可以使用Java-8流做同樣的事情。

您可以使用flatMap運算符來完成它。 這是它的外觀。

List<Section> sections = divisions.stream()
    .flatMap(d -> d.getSections().stream())
    .collect(Collectors.toList());

您可以流式傳輸divisions列表並將元素添加到部分,如下所示,

divisions.stream().map(ele->ele.getSections()).forEach(sections::addAll);

您可以映射值:

divisions.stream().map(Division::getSections).forEach(sections::addAll);

或者干脆:

divisions.forEach(d -> sections.addAll(d.getSections()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM