Java程序验证数组中是否存在给定的元素
您可以使用任何搜索算法查找给定数组中是否存在特定对象。在这里,我们将看到线性搜索和二进制搜索的示例。
线性搜索
遍历数组。
将每个元素与所需元素进行比较。
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();
}
System.out.println("输入要搜索的值: ");
int searchVal = sc.nextInt();
for (int i =0 ; i<myArray.length; 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