我在找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])
會導致數組超出界限的錯誤。
我在找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])
會導致數組超出界限的錯誤。
在Java中,int
陣列初始化爲零值,所以你不能說,如果它已經沒有設置,或者如果它被設置爲0
如果值你想檢查它是否設置,你應該使用Integer
的數組。如果該值未設置,則將爲null
。
Integer[][] board = new Integer[8][8];
...
if (board[x][y] != null) { ... }
您可以創建一個方法,首先檢查x,y是否位於數組的邊界內,如果是,則該值不爲null。我不相信有一個內置的數組方法,但是有一些類似.contains()的輔助函數用於ArrayLists。
我認爲一個基本的空檢查會起作用。
String[] myArray = {"Item1", "Item2"};
for(int x =0; x < myArray.length; x++){
if(myArray[0] != null)
{
...do something
}
}
它應該是if(myArray [x]!= null) – 2017-10-31 11:45:41
也許最好不要使用int,你可以使用整數,如果你真的把它作爲一個int,但一般來講一個複雜的對象將是更好的(如ChessPiece或東西)。這樣你可以檢查值== == null(null表示它沒有被設置)。
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沒有equiv。因爲知道某件事情是否真正設定不僅僅是將一個值填入某個位置。
確認...不要發現異常! – TofuBeer 2012-03-28 00:42:37
只是想知道...爲什麼?我都是爲了減少異常處理和編碼 – 2012-03-28 14:26:42
http://books.google.ca/books/about/Effective_Java.html?id=ka2VUBqHiWkC&redir_esc=y(第9章,第57項)。僅在特殊情況下使用例外。沒有什麼特別的事情要走出界限。此外,異常處理通常是代碼中較慢的路徑(未由虛擬機優化),因此它可能是不必要的性能問題。最後,它是一個RuntimeException,它表示程序員的錯誤 - 修復這個錯誤並不能解決它。爲x/y在範圍內添加if檢查,它更快,更清晰,且不易出錯。 – TofuBeer 2012-03-28 16:11:31
'isset()'的功能是什麼? – 2012-03-28 00:29:56