如何使用Java fliter和stream替换以下代码
public void demo(List<String> list,String id){
if(id!=null){
return all the elements matching withid;
}else{
return actual list passed in paramater;
}
答案 0 :(得分:2)
你可以这样做:
public List<String> demo(List<String> list, String id) {
if (id != null) {
return list.stream()
.filter(s -> s.equals(id))
.collect(Collectors.toList());
} else {
return list;
}
}
答案 1 :(得分:1)
如果你想删除if / else你可以尝试这样的事情:
public List<String> demo(List<String> list, String id) {
return list.stream()
.filter(s -> (id == null || s.equals(id)))
.collect(Collectors.toList());
}
由于可读性,我仍然更喜欢if / else解决方案。