我有一个整数数组。
让我们说:
int[] arr = {0,0,0};
我使用 for 循环访问数组元素,然后将它们递增 1。
private int[] someMethod() {
int [] arr = {0,0,0};
for(int i = 0 ;i < arr.length; i++) {
arr[i]++;
}
return arr;
}
然后我[1,1,1]
每次都得到。但我想[1,1,1]
,然后[2,2,2]
再[3,3,3]
等..
换句话说,我想增加已经增加的数组
我希望有人能帮忙
问题是您在方法的开头重新分配了数组,而不是使用您更改的前一个数组。但也有一种更紧凑的方法来做到这一点。
我会用这个Arrays.setAll()
方法。
int[] arr = {0,0,0};
Arrays.setAll(arr, i->++arr[i]);
System.out.println(Arrays.toString(arr));
Arrays.setAll(arr, i->++arr[i]);
System.out.println(Arrays.toString(arr));
印刷
[1, 1, 1]
[2, 2, 2]
如果您想将其合并到您的方法中,您可以执行以下操作:
int[] arr = {0,0,0};
for(int k = 0; k < 5; k++) {
System.out.println(Arrays.toString(someMethod(arr)));
}
public static int[] someMethod(int[] array) {
Arrays.setAll(array, i->++array[i]);
return array;
}
印刷
[1, 1, 1]
[2, 2, 2]
[3, 3, 3]
[4, 4, 4]
[5, 5, 5]
请注意,没有必要返回数组,因为您正在传递引用并更改其内容。但在某些情况下,它可以使其更易于使用(如我之前的示例)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句