Java Array Indexof
-
Obtenha o índice de um elemento em um array de tipo
Integer
em Java - Obter índice de um elemento Array usando Java 8 Stream API em Java
-
Obtenha o índice de um elemento Array usando
ArrayUtils.indexOf()
em Java
Este artigo apresenta como obter o índice de un array em Java usando diferentes técnicas.
Obtenha o índice de um elemento em um array de tipo Integer
em Java
Não existe um método indexOf()
para um array em Java, mas um ArrayList
vem com este método que retorna o índice do elemento especificado. Para acessar a função indexOf()
, primeiro criamos um array de Integer
e depois o convertemos em uma lista usando Arrays.asList()
.
Observe que usamos uma classe wrapper Integer
em vez de um int
primitivo porque asList()
só aceita classes wrapper, mas elas retornam o resultado como um tipo de dados primitivo. Podemos verificar o exemplo a seguir, onde especificamos o elemento, ou seja, 8 para o método indexOf()
para obter seu índice. O resultado que obtemos de getIndex
é do 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
Obter índice de um elemento Array usando Java 8 Stream API em Java
Podemos usar a API Stream para filtrar os itens do array e obter a posição do elemento especificado. IntStream
é uma interface que permite a um int
primitivo usar as funções de Stream como filter
e range
.
range()
é um método de IntStream
que retorna os elementos da posição inicial até o final do array. Agora usamos filter()
que leva um predicado como argumento. Usamos i -> elementToFind == array1[i]
como o predicado onde i
é o valor recebido de range()
e elementToFind == array1[i]
é a condição para verificar se o elementToFind
corresponde ao elemento atual do array1
.
findFirst()
retorna o primeiro elemento e orElse()
retorna -1 se a condição falhar.
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);
}
}
Resultado:
Index of 3 is 1
Obtenha o índice de um elemento Array usando ArrayUtils.indexOf()
em Java
Este exemplo usa a classe ArrayUtls
incluída na Apache Commons Library. Usamos a dependência abaixo para importar as funções de biblioteca para nosso projeto.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
Usamos a função indexOf()
da classe ArrayUtils
para encontrar o índice do array. indexOf()
aceita dois argumentos, o primeiro argumento é o array e o segundo argumento é o elemento do qual queremos encontrar o í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);
}
}
Resultado:
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