【发布时间】:2015-03-28 18:45:13
【问题描述】:
假设我的数组是这样定义的:
int [] p = new int[10];
p[0] = 1;
p[1] = 4;
p[2] = 7;
我知道我可以使用 ArrayList 而不必担心调整大小,但我只想知道如何找到该数组中最后一个元素 (7) 的索引。这是我尝试过的,但失败了,因为显然我无法将 int 与 null 进行比较。否则你会怎么做呢?
int tail=0;
for(int i= 0; i < p.length; i++){
if(a[i]==null){
tail= i-1;
break;
}
}
【问题讨论】:
-
int数组元素被初始化为零。如果所有 您的 值都是正数,您可以检查 0,否则您根本无法区分默认值和指定值。 -
好吧,其他数组组件将被初始化为零而不是空;除非不输入零,否则您可以做的唯一检查是,当您遇到零时,您的索引将是前一个。
-
当您创建一个特定类型的数组时,它的所有元素都使用该类型的默认值进行初始化,在这种情况下为零。最好使用arraylist :)
-
还可以选择使用高效的
Arrays.fill操作来初始化任何哨兵值,例如Integer.MIN_VALUE。 -
即使您可以将 int[] 元素与 null 进行比较,您的代码也是错误的。