我有一个标准的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. 未正确分配数组
- 3. 如何检查变量数组是否未分配?
- 4. 如何判断多维数组是否未分配给?
- 5. 如何确定数组是否已满
- 6. 如果未定义变量,是否有任何默认值分配给它们?
- 7. 如何确定PHP中是否有数组或对象?
- 8. SQL确定参数是否有值
- 9. 确定是否可以为给定值分配反射属性
- 10. 温度变量没有从数组中分配正确的值
- 11. 未正确检查数组中是否存在该值?
- 12. 如何确保动态分配的数组在openmp中是私有的
- 13. 这是否有点过分,还是我做正确的事情?
- 14. 如何确定是否有一个二维数组重复
- 15. 如何确定窗口是否配置
- 16. 将值明确分配给2D数组?
- 17. 如何确定java中的字节数组是否全为零
- 18. 如何确定多维数组中的元素是否为空
- 19. 如何确定PHP中的数组是否为空?
- 20. 有没有办法确定任务是否被重新分配?
- 21. 确定是否所有元素的数组是素数
- 22. 从数组中分配数据,还是什么?
- 23. 如何确定2D数组是否包含特定数字?
- 24. 确定SID是用户还是组
- 25. 如何确定卷积是否可分?
- 26. 未定义指数值分配给数组元素
- 27. 如何检查数组的数组是否在内部数组中有值?
- 28. 如何确定这是latin1还是utf8?
- 29. 如何查找C中的数组中是否有值?
- 30. 如何确定SystemTime值是否为UTC
你说的全是什么意思? – zigdon 2010-10-01 19:32:50
这很大程度上取决于数组的类型,以及如何初始化并使用它。你可以发布一些示例代码来展示你如何创建和使用数组? – 2010-10-01 19:33:33
这个问题没有意义。它总是有你要求的大小。 – gawi 2010-10-01 19:35:18