java - 如何通过固定列和遍历行来填充二维数组的单元格

标签 java multidimensional-array

我有一个像这样的二维数组

share [] [] = new share [shares][m+1]; 

什么时候

int m= secret.length;

在哪里

byte [] secret = one.readFile () ;

所以 m 的大小是我的大小(以字节为单位) 现在,当我浏览二维数组的列时,每一列代表文件的一个字节,所以假设文件文本是 hello,第一列代表 h ,第二列代表 e 等等

这些行代表份额,这意味着如果我将 main 作为份额值设置为 7,我们将有 7 行。现在我想做的就是这样的事情

for (byte coeff: secret ) { // so now i know i am fixing rows 

for (int j=0 ; j<shares; j++ ) { // now i am itereating through rows and my column is fixed 

} // close inner loop

} // close loop which go through rows

现在我想做但无法做的是我想填充二维数组的每个单元格

我想使用

share [j] [//here i do not hot what to put] = (byte) evaluate(share[j][0], a);

其中(字节)评估(share[j][0],a);是我想要放在二维数组的每个单元格上的多项式的值,我想按照上面提到的通过固定列和遍历行来填充它。 H. 如果有人能帮助我那就完美了。

最佳答案

因此,如果我正确理解您的问题,您希望通过首先遍历每一列然后遍历每一行来迭代数组。并且你想将数组的每个元素的值设置为 evaluate(share[j][0], a) .

如果是这样,可以使用以下逻辑来设置数组每个元素的值:

for(int i=0; i<m+1; i++) { // iterating over columns
    for(int j=0; j<shares; j++) { //iterating over rows
        share[j][i] = evaluate(share[j][0], a);
    }
}

引用发帖者的评论,最外面的 for 循环正在迭代数组 share 中每个出现的字节。根据原始评论,int m = secret.length哪里byte[] secret = one.readLine() 。实际上,这意味着 int m = one.readLine().length .

所以当我说for(int i=0; i<m+1; i++) {...}时,我是说,对于文件中每次出现的字节(由变量 i 的值定义),执行内部 for 循环。

您可以将最外层的 for 循环替换为 for(byte coeff: secret) {...} ,并且循环相同次数会有相同的效果。第二种方法称为 enhanced for statement 。但使用第二种方法时,会产生确定 coeff 位置的开销。在数组 secret 中。你需要它来设置数组的值(我看到你的评论[//这里我不喜欢放什么]:))。第一种方法可以轻松解决这个问题。

以我的拙见,如果您想在该位置使用该数组中元素的值,则循环数组的方法非常有用。在这种情况下,您实际上只对元素的位置值感兴趣,并且使用第一种方法会更好。

如果我的回答有帮助,请投票:)

关于java - 如何通过固定列和遍历行来填充二维数组的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35821894/

相关文章:

c++ - 从内存读出和读入整个数组到硬盘驱动器(在 C/C++ 中)

c - 将数据扫描到多维数组中

我可以在 C 中将指针作为二维数组访问吗?

java - 添加不带命名空间的 SOAP header 元素

java - 如何使用Java验证输入2是否可以使用输入1中的单词构造?

java - 使用 double 类型对对象数组列表的数组列表进行排序

c++ - 在控制台中打印一个十六进制数组

java - 如何在运行时使用不同版本的库?

java - Spring MVC CRUD 应用程序

java - 如何在 Java 中创建包含泛型的自定义类数组