Java Array Indexof

Rupam Yadav 12 Oktober 2023
  1. Index eines Elements in einem Array vom Typ Integer in Java ermitteln
  2. Index eines Array-Elements mit Java 8 Stream API in Java abrufen
  3. Index eines Array-Elements mit ArrayUtils.indexOf() in Java ermitteln
Java Array Indexof

Dieser Artikel stellt vor, wie man den Index eines Arrays in Java mit verschiedenen Techniken ermitteln kann.

Index eines Elements in einem Array vom Typ Integer in Java ermitteln

Es gibt keine indexOf()-Methode für ein Array in Java, aber eine ArrayList kommt mit dieser Methode, die den Index des angegebenen Elements zurückgibt. Um auf die Funktion indexOf() zuzugreifen, erstellen wir zunächst ein Array von Integer und wandeln es dann mit Arrays.asList() in eine Liste um.

Beachten Sie, dass wir eine Wrapper-Klasse Integer anstelle eines primitiven int verwenden, da asList() nur Wrapper-Klassen akzeptiert, die aber das Ergebnis als primitiven Datentyp zurückgeben. Wir können das folgende Beispiel überprüfen, in dem wir das Element, d.h. 8, an die Methode indexOf() übergeben, um seinen Index zu erhalten. Das Ergebnis, das wir von getIndex erhalten, ist vom Typ 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");
  }
}

Ausgabe:

8 is located at 3 index

Index eines Array-Elements mit Java 8 Stream API in Java abrufen

Wir können die Stream-API verwenden, um die Array-Elemente herauszufiltern und die Position des angegebenen Elements zu erhalten. IntStream ist eine Schnittstelle, die es einem primitiven int erlaubt, die Stream-Funktionen wie filter und range zu verwenden.

range() ist eine Methode von IntStream, die die Elemente von der Startposition bis zum Ende des Arrays zurückgibt. Jetzt verwenden wir filter(), das ein Prädikat als Argument nimmt. Wir verwenden i -> elementToFind == array1[i] als Prädikat, wobei i der von range() erhaltene Wert ist und elementToFind == array1[i] die Bedingung ist, um zu prüfen, ob das elementToFind mit dem aktuellen Element des array1 übereinstimmt.

findFirst() gibt das erste Element zurück und orElse() gibt -1 zurück, wenn die Bedingung fehlschlägt.

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);
  }
}

Ausgabe:

Index of 3 is 1

Index eines Array-Elements mit ArrayUtils.indexOf() in Java ermitteln

Dieses Beispiel verwendet die Klasse ArrayUtls, die in der Apache Commons Library enthalten ist. Wir verwenden die unten stehende Abhängigkeit, um die Bibliotheksfunktionen in unser Projekt zu importieren.

  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
  </dependency>

Wir verwenden die Funktion indexOf() der Klasse ArrayUtils, um den Index des Arrays zu ermitteln. indexOf() akzeptiert zwei Argumente, das erste Argument ist das Array und das zweite Argument ist das Element, dessen Index wir finden wollen.

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);
  }
}

Ausgabe:

Index of 9 is 4
Rupam Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java Array