Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果需要,则替换Java流_Java - Fatal编程技术网

如果需要,则替换Java流

如果需要,则替换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匹配的所有元素; }否则{

如何使用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 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解决方案。

您是否自己尝试过解决它?已经有很多资源介绍了如何使用流。