Java流将替换if else

时间:2016-05-05 14:11:37

标签: 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;
}

2 个答案:

答案 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解决方案。