簡體   English   中英

通過將兩個整數數組的值一對一地求和來合並兩個整數數組

[英]Merge two integer arrays by summing their values one by one into one array

我見過類似的問題,但沒有一個提供我所要的答案,因此,如果我認為這是重復的話,我向您道歉。 我正在嘗試將數組{2,null,3}和{4,5,6}合並為{6,5,9}。 抱歉,問題很愚蠢。

您可以簡單地執行for循環:

int[] newArray = new int[array1.length]();
for(int i = 0; i < array1.length; i ++){
  int sum = (array1[i] == null ? 0 : array1[i]) + (array2[i] == null ? 0 : array2[i]);
  newArray[i] = sum;
}

您應該考慮兩個數組的大小可能不相同

int size1 = array1.length;
int size2 = array2.length;
int[] newArray = new int[size1 > size2 ? size1 : size2];


for(int i = 0; i < newArray.length; i ++){
  int sum = 0;
  if(size1 >= i && size2 >= i){
    sum = (array1[i] == null ? 0 : array1[i]) + (array2[i] == null ? 0 : array2[i]);
  } else if(size1 >= i && size2 < i){
    sum = array1[i] == null ? 0 : array1[i];
  } else{
    sum = array2[i] == null ? 0 : array2[i];
  }
  newArray[i] = sum;
}

注意:我按照您的要求進行了操作,但是int始終為!= null,默認值為0

我是手動寫的,所以可能不完美,希望對您有所幫助

你可以做這樣的事情

public Integer[] arraySum(Integer[] array1, Integer[] array2) {
    if (array1.length != array2.length) {
        throw new IllegalArgumentException("Arrays should have the same size.");
    }
    Integer[] result = new Integer[array1.length];
    for (int i = 0; i < array1.length; i++) {
        result[i] = getValue(array1[i]) + getValue(array2[i]);
    }
    return result;
}

private int getValue(Integer integer) {
    return integer == null ? 0 : integer;
}

也許您主要需要:

a3[i] = (a1[i] == null ? a1[i] : 0) + (a2[i] == null ? a2[i] : 0);

private static String[] arrayMeger(String[] arr1,String[] arr2 ){
String[] returnArr = new String[arr1.length()];
for(int i=0;i<arr.length();i++)
{
   int valInt = (arr[i]==null) ? 0 : Integer.parse(arr[i]);
int valInt2 = (arr2[i]==null) ? 0 : Integer.parse(arr2[i]);
returnArr [i] = Integer.toString(valInt +valInt2 );
}
return returnArr ;
}

數組是非常古老的概念,您應該看看數組列表

知道在您的情況下,我考慮其中有3個元素的兩個靜態數組

int[] A = {2, null, 3};
int[] B = {4, 5, 6} ;
int[] C= new  int[3]

for(int i=0;i<3;i++){
C[i] = (A[i]==null?A[i]:0) + (B[i]==null?B[i]:0);
}
//C array is your final array but make sure you remove null from your code

我認為您可能需要這樣做,請嘗試這些代碼行,它們可能會有所幫助

    int[] a = {2, null,3};
    int[] b = {4, 5,6};
    int c[a.length()];
    for(int i = 0;i < 3;i++){
       c[i] = (a[i]==null?a[i]:0) + (b[i]==null?b[i]:0)
    }

暫無
暫無

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

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