如何检查数组元素是否存在?

时间:2012-03-28 00:27:04

标签: java

我正在寻找Java相当于PHP的isset();

int board[][]=new int[8][8];
...
if(isset(board[y][x]))
  // Do something with board[y][x]

Java中是否存在这样的函数?

编辑:抱歉,我的意思是我想检查board[100][100]是否存在。 if(board[100][100])会导致数组超出界限错误。

5 个答案:

答案 0 :(得分:6)

在Java中,int数组被初始化为零值,因此您将无法判断它是否未设置,或者它是否设置为值0.

如果要检查是否已设置,则应使用Integer数组。如果未设置该值,则为null

Integer[][] board = new Integer[8][8];
...
if (board[x][y] != null) { ... }

答案 1 :(得分:1)

我认为基本的空检查会起作用。

String[] myArray = {"Item1", "Item2"};

for(int x =0; x < myArray.length; x++){
    if(myArray[0] != null)
    {
      ...do something
    }
}

答案 2 :(得分:0)

您可以创建一个方法来检查首先x,y是否在数组的边界内,以及该值是否为null。我不相信有一个内置的数组方法,但有一些类似于.contains()的辅助函数,用于ArrayLists。

答案 3 :(得分:0)

可能最好不要使用int,如果你真的必须将它作为int使用,你可以使用Integer,但一般来说复杂的对象会更好(比如ChessPiece或其他东西)。这样你就可以检查是否值== null(null表示它尚未设置)。

答案 4 :(得分:-1)

  if (board[x][y] != null) {
    // it's not null, but that doesn't mean it's "set" either.  You may want to do further checking to ensure the object or primitive data here is valid
  }

Java没有等价物。因为知道某些东西是否真的设置不仅仅是将一个值填充到一个位置。