Java >> Tutoriel Java >  >> Java

Index de tableau en Java | Trouver l'index Array d'un élément en Java

J'espère que vous avez fait une étude sur Java Array. Ce tutoriel couvre l'indexation avancée des tableaux. Index de tableau en Java concept de base et principal où chaque élément a son propre numéro d'index.

L'indexation dans Array commence à partir de 0. Dans ce didacticiel, vous découvrirez l'indexation Java Array et trouverez l'index Array d'un élément.

Base de l'index Array en Java :

L'indexation du tableau commence à partir de 0, voir cet exemple. Tableau d'impression avec programme de numéro d'index.

Un hack simple que nous avons utilisé ici, l'exécution d'une boucle for a utilisé une longueur de tableau. Imprimez ensuite la variable de boucle et la valeur de l'élément. Vous pouvez faire de même avec d'autres instructions Java Controle.

public class ArrayIndexingExample {

    public static void main(String[] args) {
        int array[] = {1, 9, 0};

        for (int i = 0; array.length > i; i++) {

            System.out.println(i + " Index number Element is " + array[i]);
        }
    }
}

Sortie : 0 Numéro d'index L'élément est 1
1 Numéro d'index L'élément est 9
2 L'élément du numéro d'index est 0

Commençons par rechercher un tableau index d'un élément en Java

Java ArrayList a une méthode indexOf. Où en Java Arrays n'a-t-il pas une telle méthode? Donc, avec la programmation, vous pouvez le faire.

Un exemple supérieur consiste simplement à exécuter une boucle et à imprimer un index avec l'élément. Mais que se passe-t-il si vous souhaitez accéder à un numéro d'index d'élément particulier dans Java Array. Voyons de nombreuses méthodes (façon d'y parvenir).

  • Recherche linéaire
  • API de flux
  • Convertir en liste (ArrayList)
  • Recherche binaire
  • Goyave

Recherche linéaire

Trouver un index d'élément de tableau avec l'algorithme de recherche linéaire complexité - O(N) .

Exemple de tableau primitif.

public class FindIndexExample {

    public static void main(String[] args) {
        int array[] = {1, 9, 0, 3, 4};

        int index = findIndex(array, 9);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        for (int i = 0; i < a.length; i++)
            if (a[i] == target)
                return i;

        return -1;
    }
}

Sortie : 1

API de flux

Le flux est une nouvelle couche abstraite introduite dans Java 8.

import java.util.stream.IntStream;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 9, 0, 3, 4};

        int index = findIndex(array, 0);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        int len = a.length;
        return IntStream.range(0, len)
                .filter(i -> target == a[i])
                .findFirst() // first occurence
                .orElse(-1); // No element found
    }
}

Sortie : 2

Convertir en liste (ArrayList)

Pourquoi convertir ? Parce que List a la méthode indexof, qui trouve un index de l'élément.

import java.util.Arrays;
import java.util.stream.Collectors;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 0, 3, 4, 9};

        // find the index of 9
        int index = findIndex(array, 9);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        return Arrays.stream(a) 					// IntStream
                .boxed()						// Stream<Integer>
                .collect(Collectors.toList())   // List<Integer>
                .indexOf(target);
    }
}

Sortie : 4

Recherche binaire

Vous pouvez utiliser un algorithme de recherche binaire, mais uniquement dans le tableau trié . Consultez cet exemple pour trouver l'index de tableau avec la mise en œuvre de la recherche binaire.

Complexité – O(log n)

import java.util.Arrays;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 0, 3, 4, 9};

        // find the index of 3
        int index = findIndex(array, 3);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        int index = Arrays.binarySearch(a, target);
        return (index < 0) ? -1 : index;
    }
}

Sortie : 2

Bibliothèque de goyave

Guava est une bibliothèque open source développée par Google et basée sur Java.

La classe utilitaire a un indexOf() méthode qui renvoie l'indice du premier élément d'apparence du tableau.

import com.google.common.primitives.Ints;

public class IndexExample {

    public static void main(String[] args) {
        int array[] = {1, 0, 3, 4, 9};

        // find the index of 4
        int index = findIndex(array, 4);
        System.out.println(index);

    }

    // Method find index of an element in a primitive array
    public static int findIndex(int[] a, int target) {
        return Ints.indexOf(a, target);
    }
}

Sortie : 3

Q :Comment trouver l'index d'un élément dans un tableau d'entiers en Java ?

Réponse : Il peut s'agir de votre question d'entretien comme celle-ci :"Étant donné un tableau d'éléments N et un élément K, trouvez l'index d'un élément de tableau en Java"

Les méthodes supérieures sont un moyen de le faire.

Faites un commentaire si vous avez une nouvelle façon de le faire ou si vous avez des doutes.


Balise Java