Java Array Indexof
-
Obtener el índice de un elemento en un array de tipo
Integer
en Java - Obtener el índice de un elemento de un array usando la API Stream de Java 8 en Java
-
Obtener el índice de un elemento de un array utilizando
ArrayUtils.indexOf()
en Java
Este artículo presenta cómo obtener el índice de un array en Java utilizando diferentes técnicas.
Obtener el índice de un elemento en un array de tipo Integer
en Java
No hay un método indexOf()
para un array en Java, pero un ArrayList
viene con este método que devuelve el índice del elemento especificado. Para acceder a la función indexOf()
, primero creamos un array de Integer
y luego lo convertimos en una lista utilizando Arrays.asList()
.
Fíjate en que utilizamos una clase envolvente Integer
en lugar de una primitiva int
porque asList()
sólo acepta clases envolventes, pero devuelven el resultado como un tipo de datos primitivo. Podemos comprobar el siguiente ejemplo, donde especificamos el elemento 8 al método indexOf()
para obtener su índice. El resultado que obtenemos de getIndex
es de tipo 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");
}
}
Resultado:
8 is located at 3 index
Obtener el índice de un elemento de un array usando la API Stream de Java 8 en Java
Podemos utilizar el Stream API para filtrar los elementos del array y obtener la posición del elemento especificado. El IntStream
es una interfaz que permite a una primitiva int
utilizar las funciones del Stream como filter
y range
.
range()
es un método de IntStream
que devuelve los elementos desde la posición inicial hasta el final del array. Ahora usamos filter()
que toma un predicado como argumento. Usamos i -> elemenToFind == array1[i]
como predicado donde i
es el valor recibido de range()
y elementToFind == array1[i]
es la condición para comprobar si el elementToFind
coincide con el elemento actual del array1
.
La función findFirst()
devuelve el primer elemento y orElse()
devuelve -1 si la condición falla.
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);
}
}
Producción :
Index of 3 is 1
Obtener el índice de un elemento de un array utilizando ArrayUtils.indexOf()
en Java
Este ejemplo utiliza la clase ArrayUtls
que se incluye en la biblioteca Apache Commons. Utilizamos la siguiente dependencia para importar las funciones de la biblioteca a nuestro proyecto.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
Utilizamos la función indexOf()
de la clase ArrayUtils
para encontrar el índice del array. La función indexOf()
acepta dos argumentos, el primero es el array, y el segundo es el elemento del que queremos encontrar el índice.
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);
}
}
Producción :
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