在一个方法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中接收一下就好了