我正在处理Object Array我能够获取元素,直到元素存在。例如
Object[] elements={"Apple","Orange","Grape","Mango","Banana"};
我能够通过索引获取元素,但是当我超出索引长度时。例如,这里我们有5个元素,最后将被元素[4]访问,但是如何检查元素[5],元素[6] ]是否存在
答案 0 :(得分:4)
使用elements.length
查找数组中的元素数。
答案 1 :(得分:4)
Ass Voo指出,您需要检查数组长度,例如:
for(int i=0; i<elements.length; i++){
// Check elements[i] here.
}
或者,您可以使用Java 5中引入的新for循环语法:
for(Object e : elements){
// Check e here.
}
更好的是,您可以将数据包装为List
,并使用其contains
方法:
Arrays.asList(elements).contains("Strawberry"); // Will return false.
答案 2 :(得分:3)
在按索引获取元素之前,您始终必须确保索引有效。要么你知道索引是存在的,因为你创建了数组并且知道它的长度,或者你不知道因为你没有创建数组,然后你只需要检查索引是否对数组有效:
if (index < array.length) {
// the index is valid for this array. I can use array[index]
}
大多数情况下,数组用于遍历其所有元素,您只需从0(包括)迭代到数组的长度(不包括):
for (int i = 0; i < array.length; i++) {
// do something with array[i]
}
原始类型数组中总有一些东西。 int[]
数组中填充了int
个值。如果没有初始化,则填充为0.默认情况下,boolean[]
数组填充为false。
默认情况下,对象数组填充null
。
答案 3 :(得分:2)
在Java中,数组是一个Object。该对象包含一个名为public final
的{{1}}字段。该字段包含数组的长度(=元素数)。
所以,从字面上回答你的问题:
如何检查元素[5],元素[6]是否存在
通过将要检查的索引与数组长度进行比较。
length
要在循环中使用它,可以编写一个简单的for循环,它总是检查索引stil是否小于数组长度。
public boolean doesIndexExist(Object[] array, int indexToCheck)
{
return indexToCheck < array.length;
}
答案 4 :(得分:1)
例如,
Object[] elements = {"Apple","Orange","Grape","Mango","Banana"};
Object obj = null;
int elementsLength = elements.length;
int i = 10;
if (i < elementsLength) {
obj = elements[i];
} else {
System.out.println("Oops!.. Out of index!");
}
if (obj != null) {
System.out.println(obj);
}
答案 5 :(得分:0)
您可以使用数组的length属性来标识没有可用的元素。即使你可以写这样的方法。
Object[] elements={"Apple","Orange","Grape","Mango","Banana"};
public boolean isElementExist(int index) {
boolean result = false;
if(index >= 0 && index < elements.length) {
result = true;
}
return result;
}