[英]Filtering a list using Java 8 lambda expressions
我有一個Project
類:
class Project {
List<Name> names;
int year;
public List<Name> getNames(){
return names;
}
}
然后我有另一個主要功能,我有一個List<Project>
並且必須根據年份過濾該項目列表並獲取名稱列表作為結果。
你能告訴我如何使用java 8 lambda表達式嗎?
謝謝
好吧,您沒有說明確切的過濾條件,但假設您希望按給定年份過濾元素:
List<Name> names = projects.stream()
.filter(p -> p.getYear() == someYear) // keep only projects of a
// given year
.flatMap(p -> p.getNames().stream()) // get a Stream of all the
// Names of all Projects
// that passed the filter
.collect(Collectors.toList()); // collect to a List
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.