问一下为什么这样输出的还是111 能不能解释下原理 想不起来了
List objects = new ArrayList<>();
po111 po111 = new po111();
po111.setAaa("111");
po111 adsad = new po111();
adsad.setAaa("2313123123");
objects.add(po111);
objects.stream().map(a->{
a=adsad;
return a;
}).collect(Collectors.toList());
System.out.printf(objects.get(0).getAaa());
@Data
public class po111 {
private String aaa ;
}
steam不会改变原来的数据,所以你对源数据打印,结果并没有改变。
steam通过流对源数据进行操作,最终返回一个新的对象。新的对象里面的值才是修改以后的。
你可以用一个变量把steam处理后的结果存储下了,然后再打印看看。