首页 > 解决方案 > 如何检查一个值是否在二维数组的某个位置?

问题描述

我正在创建一个 2D 数组: int[][] family = new int[10][]; 然后我将第二个添加到它family[0][0] = 2

如何检查值 2 是否在数组的第一个元素中?

我试过if (family[0][0] == 2){return true;}了,但是当我运行程序时它只是跳过它。

完整代码:

        int[][] family = new int[1000000][];
        Random rn = new Random();
        Family f = new Family();
        
        int answer = rn.nextInt(2) + 1;

        try {
            family[0][0] = answer;
        

        if (family[0][0] == 1) {
            System.out.println();
        }
            
        
        } catch (NullPointerException npe) {}```

标签: javaarrays

解决方案


您没有在 2D 数组初始化期间或在为 赋值之前声明列的长度family[0][0],因此您可以这样做,int[][] family = new int[2][2];因此拥有一个 2 行和 2 列的数组,或者您可以为每行创建动态列数(比如第 0 行) 使用family[0] = new int[2];.

动态方法如下面的代码所示:

public class StackOverflow
{
    public static void main(String[] args)
    {
        int[][] family = new int[10][0]; 
        family[0] = new int[2]; //Initializing Row 0 with 2 Columns
        family[0][0] = 2; //Adding 2 to family array at position [0,0]
        System.out.println(check(family));
    }
    
    static boolean check (int[][] family)
    {
        if (family[0][0] == 2)
        return true;
        else return false;
    }
}


推荐阅读