[英]Filtering Java stream using a given parameter
我有一個List<MyObject>
:
My Object:
String name;
String team;
編輯:我想創建一個函數,將使用兩個參數過濾此列表:
public List<MyObject> filterMyObjectList (String name, String state, List<MyObject> objectsList)
我需要創建兩個過濾器:
第一個將按名稱過濾MyObject,並將僅將MyObject.getName().equals(name)
所在的對象添加到返回列表中。
第二個將使用我擁有的另一個函數( getState(MyObject.getTeam())
)由團隊過濾MyObject,並將僅將其中getState(MyObject.getTeam()).equals(state)
對象添加到列表中。
有沒有辦法寫這樣的謂詞? 使用變量進行比較? 還有另一種使用比較進行過濾的方法嗎?
謝謝!
為此,您可以應用過濾器:
public List<MyObject> filterMyObjectList (String name, String state, List<MyObject> objectsList) {
return objectsList.stream()
.filter(obj -> obj.getName().equals(name) && getState(obj.getTeam()).equals(state))
.collect(Collectors.toList());
}
由於您要檢查同一對象的兩個條件,因此可以在Predicate
使用&&
將它們聚合
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.