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

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呢?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值