不用返回值接集合结果修改集合内容不生效

在一个方法a()中有一个集合List list = new ArrayList<>();
给集合list添加元素list.add

private void a(){
   List list = new ArrayList<>();
  list.add()...
}

在这个方法中调用另一个方法,并传入list, 并对list筛选

private void filterByDeptTypePosition(List<String> list){
    list = list.stream().filter(f -> { .....}
}

再回到a()方法发现集合元素并没有变化,是什么原因 jdk版本"1.8.0_101"

你要接收返回操作后的list

private void a(){
   List<Sting> list = new ArrayList<>();
  list.add()...
list = filterByDeptTypePosition();
}
 
private List<String> filterByDeptTypePosition(List<String> list){
    list = list.stream().filter(f -> { .....}
return list ;
}

问题在stream流Collectors.toList()中, 源码重新new了一下, 此时内存地址发生了变化.

因为你的filterByDeptTypePosition没有return
在filterByDeptTypePosition中return 一下过滤后的list,然后在a中接收一下就好了