我工作的对象数组我能够得到,直到元素没有exists.For例如元素的如何查找对象数组是否包含元素?
Object[] elements={"Apple","Orange","Grape","Mango","Banana"};
我能够获得通过指数的元素,但是当我到了超越指数长度。例如,在这里我们有5个元素最后将被元素[4]访问,但是如何检查元素[5],元素[6]是否存在
我工作的对象数组我能够得到,直到元素没有exists.For例如元素的如何查找对象数组是否包含元素?
Object[] elements={"Apple","Orange","Grape","Mango","Banana"};
我能够获得通过指数的元素,但是当我到了超越指数长度。例如,在这里我们有5个元素最后将被元素[4]访问,但是如何检查元素[5],元素[6]是否存在
例如,
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);
}
你的例子比需要更复杂。例如,在将'i'设置为'10'之前用'0'初始化并声明一个变量'elementsLength',这个变量只能用于一次...... – tuergeist 2011-12-17 18:13:09
@tuergeist是的,我知道。因为它是具有附加功能的准备好员工的示例..;) – 2011-12-18 12:05:11
使用elements.length
来查找数组中元素的数量。
在Java中,数组是对象。该对象包含名为length
的public final
字段。该字段包含数组的长度(=元素数量)。
因此,要回答你的问题从字面上:
如何检查[5],元素[6]中存在的元素或不
通过比较要检查与数组索引长度。
public boolean doesIndexExist(Object[] array, int indexToCheck)
{
return indexToCheck < array.length;
}
要在一个循环中利用这一点,可以编写一个简单的for循环,它总是检查是否索引STIL比数组长度小。
for (int index = 0; index < array.length; ++index)
{
}
你的'doesIndexExist'更复杂,只需要使用'indexToCheck
@tuergeist:我知道。我想让你知道我**从来不会**这样做。但是我只是写了它,因为OP可能会更好地理解它。我不知道它是否真的帮了他很多,但值得一试。 – 2011-12-17 18:13:37
在按索引获取元素之前,必须始终确保索引是有效的。要么你知道索引的存在是因为你创建了数组并且知道了它的长度,或者你不知道是因为你没有创建数组,所以你只需要检查索引是否对数组有效:
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
。
屁股VOO注意,你需要检查数组的长度,如:
for(int i=0; i<elements.length; i++){
// Check elements[i] here.
}
或者,你可以使用新的与Java 5中引入循环语法:
for(Object e : elements){
// Check e here.
}
犹未,你可以换的数组作为List
,并利用其contains
方法:
Arrays.asList(elements).contains("Strawberry"); // Will return false.
+1 asList方法是迄今为止最容易理解和最简单的方法。 – helpermethod 2011-12-19 14:56:53
您可以使用数组的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;
}
'elements.length'返回该数组的大小。 – Voo 2011-12-17 17:47:54
我将在for循环中使用它,所以数组的大小会有所不同。我只需要查找索引中的元素是否包含值。 – Karthik 2011-12-17 17:50:05
@Karthik:提供一个更好的代码示例。 'elements.length'也可以循环使用:) – tuergeist 2011-12-17 18:07:46