gpt4 book ai didi

java - Java中两个非均匀数组中的每个元素相加

转载 作者:行者123 更新时间:2023-12-03 04:46:47 27 4
gpt4 key购买 nike

我是瑞典人,所以也许我确实给出了错误的标题。

我有两个不同大小的数组:{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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com