我是瑞典人,所以也许我确实给出了错误的标题。
我有两个不同大小的数组: {2,5,10,13} {5、7、5、22、44、75}
我想添加每个元素并将其放入第三个数组中。
所以结果应该是 {7, 12, 15, 25, 44, 75}
我已经设法完成了一些代码。
我收到了越界异常(exception)。
我认为问题是我无法添加不存在的元素。
但是我该如何解决呢?
public static void main(String[] args) {
int[] samling = {1, 2, 4, 3, 8};
int[] samling2 = {1, 2, 4, 3, 8, 8, 3};
int[] svar = concateArrays(samling, samling2);
for(int i=0; i < svar.length; i++)
System.out.println("Ny Array " + svar[i]);
}
public static int[] concateArrays(int[] samling, int[] samling2)
{
int sum = samling.length + samling2.length;
int[] total = new int[sum];
for(int i=0; i < total.length; i++){
//if (samling2.length != 0) // || samling.length != 0)
total[i] = samling[i] + samling2[i];
}
return total;
}
最佳答案
输出数组的长度不应该是输入数组的长度之和,而应该是较长输入数组的长度。在访问任一输入数组的元素之前,您必须检查当前索引 i
是否是该数组的有效索引。
public static int[] concateArrays(int[] samling, int[] samling2)
{
int[] total = new int[Math.max(samling.length,samling2.length)];
for(int i=0; i < total.length; i++) {
total[i] = (i < samling.length ? samling[i] : 0) +
(i < samling2.length ? samling2[i] : 0);
}
return total;
}
关于java - Java中两个非均匀数组中的每个元素相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52811724/