在 Java 中查詢陣列元素的索引
在使用 Java 中的陣列時,經常需要找到特定元素在陣列中的索引。此索引可用於根據需要訪問或操作元素。在本文中,我們將探討在 Java 中查詢陣列元素索引的不同方法,以及它們各自的演算法和示例程式碼。
語法
要查詢 Java 中陣列元素的索引,語法通常包括遍歷陣列並將每個元素與指定值進行比較。找到匹配項後,將返回索引。基本語法如下所示 -
public static int findIndex(int[] array, int element) {
for (int i = 0; i < array.length; i++) {
if (array[i] == element) {
return i;
}
}
return -1; // Element not found
}
語法解釋
int[] array − 我們想要查詢元素索引的陣列。
int element − 我們想要查詢索引的元素。
for 迴圈 − 遍歷陣列中的每個元素。
if 語句 − 將每個元素與所需的元素進行比較。
return i − 如果找到匹配項,則返回元素的索引。
return -1 − 如果陣列中未找到該元素,則返回 -1。
方法 1
演算法
從第一個元素開始迭代陣列。
將每個元素與所需的元素進行比較。
如果找到匹配項,則返回元素的索引。
如果到達陣列的末尾而沒有找到匹配項,則返回 -1。
示例
public class ArrayIndexFinder {
public static int findIndexApproach1(int[] array, int element) {
for (int i = 0; i < array.length; i++) {
if (array[i] == element) {
return i;
}
}
return -1; // Element not found
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int element = 3;
int index = findIndexApproach1(array, element);
System.out.println("Index of element " + element + ": " + index);
}
}
輸出
Index of element 3: 2
解釋
在這種方法中,我們使用簡單的 for 迴圈來遍歷陣列。在迴圈內,我們使用 if 語句將每個元素與所需的元素進行比較。如果找到匹配項,我們返回該元素的索引。如果到達陣列的末尾而沒有找到匹配項,我們返回 -1 以指示未找到該元素。
方法 2
演算法
使用 Java 標準庫中的 Arrays 類來搜尋陣列中的元素。
如果找到匹配項,則返回元素的索引。
如果未找到該元素,則 binarySearch 方法將返回一個負值。使用按位取反 (~) 運算子將此值轉換為插入點,並減去 1 以獲取元素將被插入的索引。
如果未找到元素,則將返回 -1。
示例
import java.util.Arrays;
public class ArrayIndexFinder {
public static int findIndexApproach2(int[] array, int element) {
int index = Arrays.binarySearch(array, element);
if (index >= 0) {
return index;
} else {
return -1; // Element not found
}
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int element = 3;
int index = findIndexApproach2(array, element);
System.out.println("Index of element " + element + ": " + index);
}
}
輸出
Index of element 3: 2
解釋
此方法使用 Java 標準庫中 Arrays 類中的 binarySearch 方法。如果找到該元素,則該方法將直接返回其索引。如果未找到該元素,則該方法將返回一個負值。我們使用按位取反運算子 (~) 將此負值轉換為插入點,並減去 1。最後,如果未找到該元素,我們返回 -1。
方法 3
演算法
使用 Java 標準庫中的 ArrayList 類將陣列轉換為 ArrayList。
使用 ArrayList 類的 indexOf 方法查詢元素的索引。
如果找到該元素,則返回其索引。
如果未找到該元素,則 indexOf 方法將返回 -1。
示例
import java.util.ArrayList;
import java.util.List;
public class ArrayIndexFinder {
public static int findIndexApproach3(int[] array, int element) {
List<Integer> list = new ArrayList<>();
for (int i : array) {
list.add(i);
}
return list.indexOf(element);
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int element = 4;
int index = findIndexApproach3(array, element);
System.out.println("Index of element " + element + ": " + index);
}
}
輸出
Index of element 4: 3
解釋
在此方法中,我們首先透過遍歷陣列並將每個元素新增到列表中來將陣列轉換為 ArrayList。然後,使用 ArrayList 類的 indexOf 函式確定元素的索引。如果找到該元素,則返回索引。如果找不到該元素,則該方法將返回 -1。
方法 4
演算法
從第一個元素開始迭代陣列。
使用 while 迴圈將每個元素與所需的元素進行比較。
如果找到匹配項,則返回元素的索引。
如果到達陣列的末尾而沒有找到匹配項,則返回 -1。
示例
public class ArrayIndexFinder {
public static int findIndexApproach4(int[] array, int element) {
int i = 0;
while (i < array.length) {
if (array[i] == element) {
return i;
}
i++;
}
return -1; // Element not found
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int element = 5;
int index = findIndexApproach4(array, element);
System.out.println("Index of element " + element + ": " + index);
}
}
輸出
Index of element 5: 4
解釋
在此方法中,我們使用 while 迴圈而不是 for 迴圈來遍歷陣列。在迴圈內,我們使用 if 語句將每個元素與指定的元素進行比較。如果找到匹配項,則返回該元素的索引。如果我們到達陣列的末尾而沒有找到匹配項,則返回 -1。
結論
在本文中,我們探討了在 Java 中查詢陣列元素索引的不同方法。我們討論了四種方法以及它們的演算法,並提供了可執行的程式碼示例。無論您偏好簡單的 for 迴圈、使用 Arrays 類、使用 ArrayList 還是 while 迴圈,您現在都有多種選擇來根據您的特定需求查詢陣列元素的索引。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP