java - 替换二维数组中的一行

标签 java arrays 2d

我有以下两个数组:

int [][]nums={{1,2,3},{4,5,6},{7,8,9}};
int []sums= {44,45,46};

我想用 44 45 46 的和替换 7 8 9 的数字。这就是我目前正在做的事情:

for(int i=0; i<sums.length; i++){
  for(int j=0 ; j< nums[2].length; j++){
    nums[2][j]=sums[i];
  } 
}

但是,这使得 nums[2]={46,46,46} 有人可以指导我做错了什么吗?

最佳答案

在这种情况下,您不需要嵌套循环。你可以这样做:

for (int i = 0; i < sums.length; i++) {
    nums[2][i] = sums[i];
}

或者您可以直接分配它而不使用循环:

int[][] nums = {{1,2,3}, {4,5,6}, {7,8,9}};
int[] sums = {44,45,46};
nums[2] = sums;
System.out.println(Arrays.deepToString(nums));

输出:

[[1, 2, 3], [4, 5, 6], [44, 45, 46]]

不同之处在于,第一个解决方案会将 sums 中的元素复制到 nums[2],而第二个解决方案会将 nums[2] 引用与 sums 相同的对象。因此,如果您选择第二个选项并稍后更改 sumsnums[2] 也会更改。

关于java - 替换二维数组中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502358/

相关文章:

java - 无法解析方法 put(java.lang.string, java.lang.string)

java - Apache Commons Daemon - 无法启动服务

javascript - 如果只存在总宽度和一些坐标数组,则获取适当的 x 和宽度

arrays - 给定数组 A 和数字 K 创建数组 B,其中 B[i] = min(A[i], A[i+1].. A[i + K - 1])

java - 如何在android中的共享首选项中存储数组

java - 通过分割将数据从文件插入二维数组?

JavaFX 8 : How to remove the last white pixel from the combobox list

java - cmd 无法识别 ssl 连接证书

c - MPI中3D过程分解中交换2D光晕的子数组数据类型的数量

java - Sikuli 问题 - 捕获一个区域