Java Array Indexof

Rupam Yadav 12 outubro 2023
  1. Obtenha o índice de um elemento em um array de tipo Integer em Java
  2. Obter índice de um elemento Array usando Java 8 Stream API em Java
  3. Obtenha o índice de um elemento Array usando ArrayUtils.indexOf() em Java
Java Array Indexof

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 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

Artigo relacionado - Java Array