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