in

Encuentra el índice de un elemento de matriz en Java

gfg 200x200 min

Dada una matriz de N elementos y un elemento K, encuentre el índice de un elemento de matriz en Java.
Ejemplos:

Input: a[] = { 5, 4, 6, 1, 3, 2, 7, 8, 9 }, K = 5
Output: 0

Input: a[] = { 5, 4, 6, 1, 3, 2, 7, 8, 9 }, K = 7
Output: 6

Se puede buscar un elemento en una matriz de N números enteros utilizando los métodos que se mencionan a continuación.

  1. Búsqueda lineal: Al hacer una búsqueda lineal en una matriz, el elemento se puede encontrar en complejidad O (N).
    A continuación se muestra la implementación del enfoque de búsqueda lineal:

Java

import java.util.*;

public class index {

    

    public static int findIndex(int arr[], int t)

    {

        

        if (arr == null) {

            return -1;

        }

        

        int len = arr.length;

        int i = 0;

        

        while (i < len) {

            

            

            if (arr[i] == t) {

                return i;

            }

            else {

                i = i + 1;

            }

        }

        return -1;

    }

    

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Producción:
Index position of 5 is: 0
Index position of 7 is: 6

2. Búsqueda binaria: La búsqueda binaria también se puede utilizar para encontrar el índice del elemento de la matriz en una matriz. Pero la búsqueda binaria solo se puede usar si la matriz es ordenado. Java nos proporciona una función incorporada que se puede encontrar en la biblioteca Arrays de Java que devolverá el índice si el elemento está presente, de lo contrario, devuelve -1. La complejidad será O (log n).
A continuación se muestra la implementación de la búsqueda binaria.

Java

import java.util.Arrays;

public class index {

    

    public static int findIndex(int arr[], int t)

    {

        int index = Arrays.binarySearch(arr, t);

        return (index < 0) ? -1 : index;

    }

    

    public static void main(String[] args)

    {

        int[] my_array = { 1, 2, 3, 4, 5, 6, 7 };

        

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Producción:
Index position of 5 is: 4
Index position of 7 is: 6

3. Guayaba: Guava es una biblioteca de código abierto basada en Java desarrollada por Google. Proporciona métodos de utilidad para colecciones, almacenamiento en caché, compatibilidad con primitivas, simultaneidad, anotaciones comunes, procesamiento de cadenas, E / S y validaciones. Guava proporciona varias clases de utilidad pertenecientes a ser primitivas como Ints para int, Longs para long, Doubles para double, etc. Cada clase de utilidad tiene una índice de() método que devuelve el índice de la primera aparición del elemento en la matriz.
A continuación se muestra la implementación de Guava.

Java

import java.util.List;

import com.google.common.primitives.Ints;

public class index {

    

    public static int findIndex(int arr[], int t)

    {

        return Ints.indexOf(arr, t);

    }

    

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Producción:
Index position of 5 is: 0
Index position of 7 is: 6

4. API de transmisión: Stream es una nueva capa abstracta introducida en Java 8. Con stream, puede procesar datos de forma declarativa similar a las sentencias SQL. La secuencia representa una secuencia de objetos de una fuente, que admite operaciones agregadas. Para encontrar el índice de un elemento, el paquete Stream proporciona la utilidad, IntStream. Usando la longitud de una matriz, podemos obtener un IntStream de índices de matriz de 0 a n-1, donde n es la longitud de una matriz.
A continuación se muestra la implementación del enfoque de Stream API.

Java

import java.util.stream.IntStream;

public class index {

    

    public static int findIndex(int arr[], int t)

    {

        int len = arr.length;

        return IntStream.range(0, len)

            .filter(i -> t == arr[i])

            .findFirst()

            .orElse(-1);

    }

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                           + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                           + findIndex(my_array, 7));

    }

}

Producción:
Index position of 5 is: 0
Index position of 7 is: 6

5. Usando ArrayList

En este enfoque, convertiremos la matriz en ArrayList, y luego usaremos el método indexOf de ArrayList para obtener el índice del elemento.

Java

import java.util.ArrayList;

public class GFG {

    public static int findIndex(int arr[], int t)

    {

        

        ArrayList<Integer> clist = new ArrayList<>();

        

        

        for (int i : arr)

            clist.add(i);

        

        return clist.indexOf
Index position of 7 is: 6

6. Uso de recursividad

Usaremos la recursividad para encontrar el primer índice del elemento dado.

Java

public class GFG {

    public static int index(int arr[], int t, int start)

    {

        

        

        

        

        if(start==arr.length)

            return -1;

        

        

        

        if(arr[start]==t)

            return start;

        

        

        

        return index(arr,t,start+1);

    }

  

    public static int findIndex(int arr[], int t)

    {

        return index(arr,t,0);

    }

  

    

    public static void main(String[] args)

    {

        int[] my_array = { 5, 4, 6, 1, 3, 2, 7, 8, 9 };

        System.out.println("Index position of 5 is: "

                + findIndex(my_array, 5));

        System.out.println("Index position of 7 is: "

                + findIndex(my_array, 7));

    }

}

Producción:

Index position of 5 is: 0
Index position of 7 is: 6

¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

python – ¿Obtener la lista de la columna o fila del marco de datos de pandas?

edit

DDR2 vs DDR3 – Diferencia y comparación