簡體   English   中英

替換2D數組中的一行

[英]replacing a row in a 2D array

我有以下兩個數組:

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相同的對象。 因此,如果選擇第二個選項並在以后更改sums ,則nums[2]也將更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM