增加数组值

胡萨姆马尔祖克

我有一个整数数组。

让我们说:

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]等..

换句话说,我想增加已经增加的数组

我希望有人能帮忙

WJS

问题是您在方法的开头重新分配了数组,而不是使用您更改的前一个数组。但也有一种更紧凑的方法来做到这一点。

我会用这个Arrays.setAll()方法。

  • 第一个参数是数组。
  • 第二个参数是一个 lambda,它返回每个数组元素的索引。
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章