English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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