将值插入2D数组

时间:2019-05-01 02:19:37

标签: java

我有一个循环,可以循环显示0-200,如果数字与列表中的数字匹配。我将其放在freq [] []中。但是,考虑到该数字的大小必须为[10] [20],因此在将找到的数字放入freq [] []时遇到了问题。

public static void example(List<Integer> numbers, List<Integer> elements, int[][] list){

        int index = 0;
        int[][] freq = new int[10][20];
        for (int i = 0; i < 200; i++){
            for (int x = 0; x < list.length; x++){
                for (int y = 0; y < list[x].length; y++){
                    if (list[x][y] == i){
                        freq[][index] = i;
                    }
                }
            }
        }
    }

2 个答案:

答案 0 :(得分:0)

将其保留为

if (list[x][y]== i){
 freq[x][y] = i;
} 
 else {
freq[x][y] = 0;  // if not matched
} 

因此freq将是具有10行20列的二维数组。

-列表中第5个索引位置的元素在10 * 20数组中将处于0 * 5位置。 -列表中第199位的元素在10 * 20数组中的第9 * 19位。

答案 1 :(得分:0)

首先,您要创建一个循环以读取200个数字,该循环要循环2d数组以按每个数字比较其元素,并确定条件是否存在于列表中,但是在代码freq [] []中,此代码将每个number在freq数组中达到条件,否则达到0

for (int i = 0; i <= 200; i++) {
    for (int j = 0; j < list.length; j++) {
        for (int k = 0; k < list[j].length; k++) {
            if(list[j][k]==i)
                freq[j][k]=i;

        }

    }

}    

如果您使用`

else 
freq[j][k]=0;

`

这意味着它将开始将数字或0放入数组中,最后,您得到的数组与您想要的不匹配,因此,如果没有其他条件,我将对其进行测试并为我工作