Java Array Indexof

Rupam Yadav 12 octobre 2023
  1. Obtenir l’index d’un élément dans un tableau de type Integer en Java
  2. Obtenir l’index d’un élément de tableau en utilisant l’API Java 8 Stream en Java
  3. Obtenir l’index d’un élément de tableau en utilisant ArrayUtils.indexOf() en Java
Java Array Indexof

Cet article présente comment obtenir l’index d’un tableau en Java en utilisant différentes techniques.

Obtenir l’index d’un élément dans un tableau de type Integer en Java

Il n’y a pas de méthode indexOf() pour un tableau en Java, mais une ArrayList est fournie avec cette méthode qui retourne l’index de l’élément spécifié. Pour accéder à la fonction indexOf(), nous créons d’abord un tableau de Integer et nous le convertissons ensuite en une liste en utilisant Arrays.asList().

Notez que nous utilisons une classe wrapper Integer au lieu d’une primitive int parce que asList() n’accepte que les classes wrapper, mais elles renvoient le résultat sous forme de type de données primitives. Nous pouvons vérifier l’exemple suivant, où nous spécifions l’élément i.e. 8 à la méthode indexOf() pour obtenir son index. Le résultat que nous obtenons de getIndex est du type 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");
  }
}

Production :

8 is located at 3 index

Obtenir l’index d’un élément de tableau en utilisant l’API Java 8 Stream en Java

Nous pouvons utiliser l’API Stream pour filtrer les éléments du tableau et obtenir la position de l’élément spécifié. IntStream est une interface qui permet à une int primitive d’utiliser les fonctions Stream comme filter et range.

range() est une méthode de IntStream qui renvoie les éléments de la position de départ jusqu’à la fin du tableau. Maintenant nous utilisons filter() qui prend un prédicat comme argument. Nous utilisons i -> elementToFind == array1[i] comme prédicat où i est la valeur reçue de range() et elementToFind == array1[i] est la condition pour vérifier si le elementToFind correspond à l’élément courant du array1.

findFirst() renvoie le premier élément et orElse() renvoie -1 si la condition échoue.

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

Production :

Index of 3 is 1

Obtenir l’index d’un élément de tableau en utilisant ArrayUtils.indexOf() en Java

Cet exemple utilise la classe ArrayUtls qui est incluse dans la bibliothèque Apache Commons. Nous utilisons la dépendance ci-dessous pour importer les fonctions de la bibliothèque dans notre projet.

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

Nous utilisons la fonction indexOf() de la classe ArrayUtils pour trouver l’index du tableau. indexOf() accepte deux arguments, le premier argument est le tableau, et le second argument est l’élément dont nous voulons trouver l’index.

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

Production :

Index of 9 is 4
Auteur: Rupam Yadav
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

Article connexe - Java Array