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

标签 java

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

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

相关文章:

java - 如何使用 POI 3.6 对 .xlsx 文件中的列进行分组?

java - 泛型返回类型有什么用

java - Integer.valueOf() 无效的整数

java - 存储二维数组并稍后在 Java 中再次调用它们

java - java处理大量文本文件

java - 我的 jsp 页面从未加载

java - 如何在多台机器上并行执行 testNG 测试用例?

java - AppEngine 开发服务器的数据查看器

java - HashMap android 没有在 android 中被调用

java - when() 是如何工作的?