English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
特定のオブジェクトが配列に存在するかどうかを検索するためのどの検索アルゴリズムを使用しても構いません。ここでは、線形検索と二進検索の例を見てみます。
配列を巡回します。
各要素を必要な要素と比較します。
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.utiljava.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