Java 陣列索引
- 在 Java 中獲取一個整數型別陣列中元素的索引
- 在 Java 中使用 Java 8 Stream API 獲取一個陣列元素的索引
- 
          
            在 Java 中使用 ArrayUtils.indexOf()獲取一個陣列元素的索引
 
本文介紹瞭如何在 Java 中使用不同的技術獲取陣列的索引。
在 Java 中獲取一個整數型別陣列中元素的索引
在 Java 中,陣列沒有 indexOf() 方法,但 ArrayList 自帶這個方法,可以返回指定元素的索引。為了訪問 indexOf() 函式,我們首先建立一個 Integer 的陣列,然後使用 Arrays.asList() 將其轉換為一個列表。
請注意,我們使用的是封裝類 Integer 而不是基元 int,因為 asList() 只接受封裝類,但它們確實將結果作為基後設資料型別返回。我們可以參考下面的例子,在這個例子中,我們向 indexOf() 方法指定元素,即 8,以獲得它的索引。我們從 getIndex 得到的結果是 int 型別。
import java.util.Arrays;
public class ArrayIndexOf {
  public static void main(String[] args) {
    Integer[] array1 = {2, 4, 6, 8, 10};
    int getIndex = Arrays.asList(array1).indexOf(8);
    System.out.println("8 is located at " + getIndex + " index");
  }
}
輸出:
8 is located at 3 index
在 Java 中使用 Java 8 Stream API 獲取一個陣列元素的索引
我們可以使用 Stream API 來篩選出陣列項,並獲取指定元素的位置。IntStream 是一個介面,它允許一個原始 int 使用 filter 和 range 等流函式。
range() 是 IntStream 的一個方法,它返回從起始位置到陣列結束的元素。現在我們使用 filter(),它接受一個謂詞作為引數。我們使用 i -> elementToFind == array1[i] 作為謂詞,其中 i 是來自 range() 的值,elementToFind == array1[i] 是檢查 elementToFind 是否與 array1 的當前元素匹配的條件。
findFirst() 返回第一個元素,如果條件失敗,orElse() 返回-1。
import java.util.stream.IntStream;
public class ArrayIndexOf {
  public static void main(String[] args) {
    int[] array1 = {1, 3, 5, 7, 9};
    int elementToFind = 3;
    int indexOfElement = IntStream.range(0, array1.length)
                             .filter(i -> elementToFind == array1[i])
                             .findFirst()
                             .orElse(-1);
    System.out.println("Index of " + elementToFind + " is " + indexOfElement);
  }
}
輸出:
Index of 3 is 1
在 Java 中使用 ArrayUtils.indexOf() 獲取一個陣列元素的索引
    
這個例子使用了 Apache Commons 庫中的 ArrayUtls 類。我們使用下面的依賴關係來匯入庫函式到我們的專案中。
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
  </dependency>
我們使用 ArrayUtils 類的 indexOf() 函式來查詢陣列的索引。indexOf() 接受兩個引數,第一個引數是陣列,第二個引數是我們要查詢索引的元素。
import org.apache.commons.lang3.ArrayUtils;
public class ArrayIndexOf {
  public static void main(String[] args) {
    int[] array1 = {1, 3, 5, 7, 9};
    int elementToFind = 9;
    int indexOfElement = ArrayUtils.indexOf(array1, elementToFind);
    System.out.println("Index of " + elementToFind + " is " + indexOfElement);
  }
}
輸出:
Index of 9 is 4
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn