扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在你查找的输入数字那段程序中,你看下,直接就是查找到一个然后程序就跳出来了,此时最好的方法是在程序前面定义一个数组,因为你不确定有多少个你要查找的数,该数组用来存储对应查找的数位置,
创新互联IDC提供业务:四川绵阳服务器托管,成都服务器租用,四川绵阳服务器托管,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。
你再查询那段程序改下,让其不要查找到一个就跳出,而是用一直查找到数组最后,程序我不给你写了,你先自己试试看看,不行的话,再帮你,毕竟自己实践是最好的!
binarySearch
public static int binarySearch(Object[] a,
Object key)使用二分搜索法来搜索指定数组,以获得指定对象。在进行此调用之前,必须根据元素的自然顺序对数组进行升序排序(通过 sort(Object[]) 方法)。如果没有对数组进行排序,则结果是不确定的。(如果数组包含不可相互比较的元素(例如,字符串和整数),则无法 根据其元素的自然顺序对数组进行排序,因此结果是不确定的。)如果数组包含多个等于指定对象的元素,则无法保证找到的是哪一个。
参数:
a - 要搜索的数组
key - 要搜索的值
返回:
如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 = 0。
抛出:
ClassCastException - 如果搜索的键不能与数组的元素进行比较。
int
a[]={1,2,3,4};
for(int
i
=
0;ia.length;i++){//遍历数组查找
if(a[i]
==
2){//找到了就输出
System.out.println("数字2是数组a中第"+(i+1)+“个元素”);
continue;//找到后就停止循环
}
}
import java.util.Scanner;
public class Test21 {
public static void main(String[] args) {
//定义并初始化数组
int[] arr = {22,33,44,55,66,7,2,5,24};
//定义并初始化Scanner对象,用于获取输入键盘输入的内容
Scanner scanner = new Scanner(System.in);
//输出信息
System.out.print("请输入需要查找的数字:");
//获取键盘输入要查找的数字
int target = scanner.nextInt();
//循环数组
for(int i = 0; i arr.length; i++) {
//如果输入的数字跟当前数组的元素的值相同
if(target == arr[i]) {
//输入所在位置,从1开始
System.out.println(target + "位于数字的第" + (i + 1) + "位");
//结束
return;
}
}
//如果找不到的话就提示一下
System.out.println("数组中不存在数字:" + target);
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流