天天看点

关于数组的查询问题?请教!

public class Display {

public static void main(String[] args) {

int a[]={55,37,33,22,36};

//Arrays.sort(a);

int index=Arrays.binarySearch(a,55);

System.out.println(index);

for(int i=0;i<a.length;i++){

//System.out.println(a[i]);

}

}

}

以上数组查询方法 如果不将数组排序难道就不能查询么?我注释掉排序方法后,只有第一个元素“22”可以正确查询,这是为什么呢?查询其他元素就和数组里元素的索引位置不一样了。 还有个问题是,假如一个数组中有多个相同的元素,假如查询此元素,它的索引位置应该怎么定呢?如:

public class Display {

public static void main(String[] args) {

int a[]={55,33,33,23,33};

Arrays.sort(a);

int index=Arrays.binarySearch(a,33);

System.out.println(index);

for(int i=0;i<a.length;i++){

//System.out.println(a[i]);

}

}

}

像这样的程序,如果排序以后,应该是int a[]={23,33,33,33,55} 这样的情况,如果查询后,输出元素“33”的索引位置为什么是2呢?为什么不是1或3呢?

继续阅读