猿问

stream api为什么不能改变数组元素

int[]a=new int[3];
Arrays.stream(a).forEach(q -> q = 3);
System.out.println(Arrays.toString(a));

为什么数组的元素还是int的初始值呢  为什么没有改成3

fenkapian
浏览 1758回答 2
2回答

慕移动4708697

int[] a = new int[3]; a= Arrays.stream(a).map(n->n=3).toArray(); System.out.println(Arrays.toString(a));forEach方法只是遍历数组 不能修改数组里面的值。map可以按照规则把元素转换成为另外一个元素,这样可以实现你的效果。如果满意请采纳额。

zzZerOrz

因为q是整形,不是引用型变量,而且是局部变量
随时随地看视频慕课网APP

相关分类

Java
我要回答