您可以使用任何搜索算法查找给定数组中是否存在特定对象。在这里,我们将看到线性搜索和二进制搜索的示例。
线性搜索遍历数组。
将每个元素与所需元素进行比较。import java.util.Scanner;
public class ArraySearch {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入要创建的数组的大小:");
int size = sc.nextInt();
int[] myArray = new int[size];
System.out.println("输入数组的元素:");
for(int i=0; i
myArray[i] = sc.nextInt();
}
System.out.println("输入要搜索的值: ");
int searchVal = sc.nextInt();
for (int i =0 ; i
if (myArray[i] == searchVal) {
System.out.println("元素 "+searchVal+" 的索引是: " + i);
}
}
}
}
输出结果输入要创建的数组的大小:
5
输入数组的元素:
30
20
5
12
55
输入要搜索的值
12
元素 12 的索引是: 3
二进制搜索
java.util包的Arrays类提供了一个名称为binarySearch()的方法,该方法接受排序的数组和要搜索的值,并返回数组中给定元素的索引。
示例import java.util.Arrays;
import java.util.Scanner;
public class ArraySearch {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入要创建的数组的大小:");
int size = sc.nextInt();
int[] myArray = new int[size];
System.out.println("输入数组的元素:");
for(int i=0; i>size; i++){
myArray[i] = sc.nextInt();
}
//对数组进行排序
Arrays.sort(myArray);
System.out.println("排序的int数组为:");
for (int number : myArray) {
System.out.print(number+" ");
}
System.out.println(" ");
System.out.println("输入要搜索的值");
int searchVal = sc.nextInt();
int retVal = Arrays.binarySearch(myArray,searchVal);
System.out.println("Element found");
System.out.println("排序数组中元素的索引: " + retVal);
}
}
输出结果输入要创建的数组的大小:
5
输入数组的元素:
30
20
5
12
55
排序的int数组为:
5 12 20 30 55
输入要搜索的值
12
Element found
排序数组中元素的索引: 1