英文:
How can I check if a value is in a certain place of a 2D array?
问题
我正在创建一个二维数组:
int[][] family = new int[10][];
然后我通过family[0][0] = 2
将数字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) {}```
<details>
<summary>英文:</summary>
I'm creating a 2D Array:
```int[][] family = new int[10][];```
and I then add the number two to it with ```family[0][0] = 2```
How do I check if the value 2 is in the first element of the array or not?
I've tried ```if (family[0][0] == 2){return true;}``` but when I run the program it just skips over it.
Full code:
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) {}```
答案1
得分: 0
你在二维数组初始化时没有声明列的长度,或者在赋值给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]; //初始化第0行,有2列
family[0][0] = 2; //在位置[0,0]处向family数组添加2
System.out.println(check(family));
}
static boolean check (int[][] family)
{
if (family[0][0] == 2)
return true;
else return false;
}
}
英文:
You haven't declared length of column during 2D array initialization or before assigning value to family[0][0]
, so either you can do it like int[][] family = new int[2][2];
thus having an array of 2 rows and 2 columns or you can create dynamic number of columns for each row(say row 0) using family[0] = new int[2];
.
The dynamic approach is shown in the code below:
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;
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论