如果需要,则替换Java流
如何使用Java fliter和stream替换以下代码如果需要,则替换Java流,java,Java,如何使用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; } public void演示(列表,字符串id){ 如果(id!=null){ 返回与id匹配的所有元素; }否则{
public void demo(List<String> list,String id){
if(id!=null){
return all the elements matching withid;
}else{
return actual list passed in paramater;
}
public void演示(列表,字符串id){
如果(id!=null){
返回与id匹配的所有元素;
}否则{
返回参数中传递的实际列表;
}
您可以这样做:
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;
}
}
公共列表演示(列表,字符串id){
如果(id!=null){
return list.stream()
.filter(s->s.equals(id))
.collect(Collectors.toList());
}否则{
退货清单;
}
}
如果要删除If/else,可以尝试以下操作:
public List<String> demo(List<String> list, String id) {
return list.stream()
.filter(s -> (id == null || s.equals(id)))
.collect(Collectors.toList());
}
公共列表演示(列表,字符串id){
return list.stream()
.filter(s->(id==null | | s.equals(id)))
.collect(Collectors.toList());
}
由于可读性,我仍然更喜欢if/else解决方案。您是否自己尝试过解决它?已经有很多资源介绍了如何使用流。