如何检测array里的空白?
比如a[8]={1,2,3,4} 我如何知道a[6]这个空间是空白的, 我写的是 if(a[6]==null), 但在编译的时候出现这个错误, incomparable types: int and <nulltype>, 那我应该怎么改呢?
----------------解决方案--------------------------------------------------------
你这个明显是一个int数组,int数组中每个元素默认被赋值是0,而不是null。
----------------解决方案--------------------------------------------------------
a[6]==0
----------------解决方案--------------------------------------------------------
那万一a[6]就算等于0怎么办,怎么区分空白和0
----------------解决方案--------------------------------------------------------
程序代码:
public static void main(String args[]) {
Integer a[]=new Integer[8];
a[0]=1;
a[1]=2;
a[2]=3;
if(a[6]==null){
System.out.println("a[6] is null");
}
}
----------------解决方案--------------------------------------------------------
不行,一定要用int, 现在就是不知道如何区分空白的0和真的0。
----------------解决方案--------------------------------------------------------
java是面向对象语言,跟C语言不一样的。C语言是用结束标志来区分数组长度,而面向对象不是这么做的。
如果你一定要用int来实现,你可以参考是ArrayList。下面我举个简单例子
程序代码:
public class MyArray {
private int[] array;
private int size = 0;
private int max = 10;
private final int increase = 10;
public String toString() {
String str = "{ ";
for (int i = 0; i < size-1; i++) {
str += array[i] + ", ";
}
return str + array[size-1]+" }";
}
public void add(int num){
if(size<max){
max +=increase;
int[] temp = new int[max];
for(int i = 0;i<size;i++){
temp[i] = array[i];
}
array = temp;
}
array[size] = num;
size++;
}
public static void main(String[] args) {
MyArray myArray = new MyArray();
for(int i =0;i<15;i++){
myArray.add(i+1);
}
System.out.println(myArray);
}
}
private int[] array;
private int size = 0;
private int max = 10;
private final int increase = 10;
public String toString() {
String str = "{ ";
for (int i = 0; i < size-1; i++) {
str += array[i] + ", ";
}
return str + array[size-1]+" }";
}
public void add(int num){
if(size<max){
max +=increase;
int[] temp = new int[max];
for(int i = 0;i<size;i++){
temp[i] = array[i];
}
array = temp;
}
array[size] = num;
size++;
}
public static void main(String[] args) {
MyArray myArray = new MyArray();
for(int i =0;i<15;i++){
myArray.add(i+1);
}
System.out.println(myArray);
}
}
----------------解决方案--------------------------------------------------------