我有一個標準的java數組,其中null
值用於未分配或陣列中的空白點。如何判斷是否還有未分配的值,即數組是否已滿?如何確定數組中是否還有未分配的值?
回答
如果「不完整」的含義有數組中的空元素,那麼你會創建一個方法,如
public boolean isFull(Object[] array) {
for (Object element : array) {
if (element == null) return false;
}
return true;
}
作爲一個靜態大小的數組,你可以說一個數組總是滿的。
但是,如果你想知道你的數組中有多少個null值,你只需要經過它。
Object[] array = new Object[10];
int count = 0;
for(Object item : array){
if(item == null)
count++;
}
或特定方法:
public int countNulls(Object[] array){
int count = 0;
for(Object item : array){
if(item == null)
count++;
}
return count;
}
如果你被指數填寫您的數組索引:
public int nextEmptyIndex(Object[] array){
int count = 0;
for(Object item : array){
if(item == null)
return count;
else
count++;
}
return -1; //Return an invalid value or do something to say that there is no empty index.
}
好吧然後我怎麼知道數組中是否有空格 – Luron 2010-10-01 19:33:38
'if(countNulls(array)> 0)...' – 2010-10-01 19:39:27
你的答案是誤導性的,因爲它只在兩個假設下有效:他有一個對象集合,並且他分配的值不會爲空。 – 2010-10-01 19:43:14
雖然我明白你的問題,我有點困惑,爲什麼你正在問它。首先,我會刺探Q本身。
Java中的數組的大小是固定的,所以它們的'完整'的概念並沒有太多意義。對於原始數組,整個數組用初始化的默認值進行初始化。因此,如果您知道要分配的值是非默認值,則可以從元素長度1中檢查缺省值。
如果你有一個對象數組,你可以檢查空值。再次,這假定你不是在你的人口中某個時候分配空值(這可能是不好的做法)。再次,您可以從陣列的最後一個元素入手,隨時檢查。
您可以通過使用適當的對象集合(例如數組列表)來避免此問題。您可以根據需要填充儘可能多的元素。
讓我再補充一點,因爲在Java中真的不存在真正的基本數組,因爲它們在低級語言中,你真的沒有獲得任何性能方面的東西,對象集合。當然,由於維護對象本身的開銷很小,因此對象集合的內存開銷會更大。儘管如此,這隻會成爲一個因素。 – 2010-10-01 19:39:32
由於某些原因,許多Java初學者使用數組。必須有很多提倡數組的Java學習課程。 – 2010-10-01 20:16:32
有趣的是 - 我曾與來自世界知名學術機構的科學家一起參與大型國際太空任務。在代碼審查期間,我遇到了遍及代碼的這個多維雙重數組。我一直在分析它是如何使用的,試圖理解它被使用的算法,但是我只是不能在我的生活中弄清楚它。 最終,我意識到他正在使用數組來模擬內存。是的,讓我重複一遍,他創造了一個巨大的陣列,他到處傳遞模擬記憶。 它在一定程度上相當有洞察力 – 2010-10-01 20:26:35
陣列總是充滿,所以
public boolean isFull(Object[] array) {
return true;
}
好吧,我們明白了。我說錯了。放鬆 – Luron 2010-10-01 19:43:33
好,那麼你應該修復措辭。 – 2010-10-01 20:21:52
- 1. 如何確定數組中是否有重複值
- 2. 如何確定參數是JavaScript中的數組還是對象?
- 3. 未正確分配數組
- 4. 確定數組中是否存在值
- 5. 如何確定特定的內存位置是否在Linux中未分配
- 6. 數組未分配值
- 7. 如何判斷多維數組是否未分配給?
- 8. 如何檢查變量數組是否未分配?
- 9. 如何確定數組是否已滿
- 10. 確定值是否在數組
- 11. 如果未定義變量,是否有任何默認值分配給它們?
- 12. 如何確定PHP中是否有數組或對象?
- 13. 如何確定某物是數組還是物件?
- 14. SQL確定參數是否有值
- 15. Fortran:未分配值的二維數組
- 16. 確定是否可以爲給定值分配反射屬性
- 17. 溫度變量沒有從數組中分配正確的值
- 18. 如何從mysql表中選擇所有數據,其中列是數組還是單個數據,我的值是否與此數組中的一項匹配?
- 19. 確定數組是算術還是幾何級數(來自Coderbyte)
- 20. 未正確檢查數組中是否存在該值?
- 21. 如何確定列是否未簽名?
- 22. 如何確保動態分配的數組在openmp中是私有的
- 23. NSDecimalNumber如何確定是否有一個小數部分
- 24. 這是否有點過分,還是我做正確的事情?
- 25. 如何檢查輸入是否與數組中的值匹配
- 26. 如何確定窗口是否配置
- 27. 如何確定是否有一個二維數組重複
- 28. 確定在java中兩個數組的部分是否相等
- 29. 如何檢查數組是否具有特定位置的值?
- 30. 這樣的分配風格是否有明確的定義?
你說的全是什麼意思? – zigdon 2010-10-01 19:32:50
這很大程度上取決於數組的類型,以及如何初始化並使用它。你可以發佈一些示例代碼來展示你如何創建和使用數組? – 2010-10-01 19:33:33
這個問題沒有意義。它總是有你要求的大小。 – gawi 2010-10-01 19:35:18