java - 如何在java中每次迭代添加两个数组,然后保存数组的内容

标签 java arrays

假设我有一个这样的方法:

public byte[] generateCoefficientsOfPolynomials(int k ,byte [] file,Random rnd) {

    for (int i=0;i<file.length;i++) {
        // for each iteration it creates a vector of size 3
    }

    // some other code here  

    // here we call the method below where allRndCoefficients is each
    // array taken from this method for instance [12,13,-20] and so on
    con.sumOfCoefficients(allRndCoefficients, k);

    // return type here
}

我将从这个方法中得到的内容将类似于这些数组: 对于第一次迭代 [12,13,-20] ,第二次迭代[123,-25,-56]等等。

注意:这些数组具有随机值,因为我使用了 rnd.nextBytes(k); ,其中k是数组中元素的数量。

现在我想要实现的是将这些数组逐个元素添加在一起。假设 [12,13,-20] 与 [123,-25,56] 相加并保存结果。然后,我们保存的结果将与上述方法的第三次迭代生成的数组相加。

我编写了以下代码来完成此操作:

public byte[] sumOfCoefficients(byte [] temp,int k) {
    galoaField256 d = new galoaField256 (); // create new reference 
    d.setGeneratorPolynom(3);
    d.getGeneratorPolynom();
    d.setString("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
    d.getString();
    d.loadExp();
    d.loadLog();
    byte [] initialSum=new byte [k];
    for(int i=0;i<k;i++) {
        initialSum[i]=(byte)d.add(initialSum[i],temp[i]);
    }

    System.out.println("The sum is" +Arrays.toString(initialSum));

    return initialSum;
}

哪里byte[] temp是我们在第一个方法每次迭代后获取的数组 generateCoefficientsOfPolynomials .

不幸的是,这里没有完成两个 vector 的求和。我得到的正是第一个方法生成的数组,这意味着每次我们添加从第一个方法获取的数组时都会添加一个包含 0 个元素的数组,因此 initialSum array 不会为第一个方法的每次迭代保存其状态。谁能拯救我并告诉我我的代码有什么问题吗?

最佳答案

目前,您的 initialSum[i] 循环计算正在定义一个空白数组元素,并在每次迭代时将该空白元素添加到 temp[i] 中,而不是最后一个元素。考虑有条件地处理累积求和,并注意使用 [i-1] 索引来捕获最后一个元素值:

for(int i=0; i<k; i++) {

     if (i==0) { 
          initialSum[i] = temp[i];
     } else {
          initialSum[i] = (byte)d.add(initialSum[i-1],temp[i]);
     }

}

关于java - 如何在java中每次迭代添加两个数组,然后保存数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237443/

相关文章:

java - Quartz PersistJobDataAfterExecution 执行后不存储

java - 扫描输入字符串(例如 "eeeeexxxxx")并一次跳过和处理一个字符

javascript - 从 Java 的 HTML 输入发送多个文件

C++/Arduino 数组的实现

database - CodeIgniter - 将输入数组写入数据库

java - 为什么我不能在 Java 中将数组的索引作为 int 返回?

php - 如何计算从数据库检索到的逗号分隔值

python - 从 .txt 文件发出读取数组

java - Tomcat 服务器 - 方法签名更改时需要重新启动

Java流迭代列表最有效的方法