Verificar se um array contém um valor específico em Java

Rashmi Patidar 12 outubro 2023
  1. Verifique se um array contém um valor específico usando o método array.contains() em Java
  2. Verificar se um array contém um valor específico usando streams Java 8
  3. Verificar se um array contém um valor específico usando um loop for simples
Verificar se um array contém um valor específico em Java

um array é uma coleção sistemática de elementos organizados em uma ordem definida. Internamente, os elementos do array são armazenados em locais de memória contíguos.

Existem várias maneiras de pesquisar um elemento em um array. Vários métodos levam a diferentes tempos e complexidades. Abaixo estão algumas maneiras listadas de pesquisar um elemento em um array.

Verifique se um array contém um valor específico usando o método array.contains() em Java

No bloco de código abaixo, precisamos instanciar um array arr com alguns valores predefinidos. Agora, inicialize a string que precisamos pesquisar.

Arrays é uma classe que possui vários métodos para manipular os arrays. Essa classe contém métodos e campos de fábrica estáticos, e eles são úteis para pesquisar e classificar elementos no array.

O método asList() é o método estático da classe Arrays. Ele retorna uma lista fixa do array especificada obtida dos parâmetros.

contains() é um método na interface List. Ele recebe um elemento como parâmetro e comparamos esse argumento com os elementos presentes na lista. Ele retorna o valor booleano true se o elemento especificado existe na lista e retorna false em qualquer caso. O método lança ClassCastException se o tipo do elemento especificado for incompatível com esta lista e NullPointerException se o valor especificado for nulo e esta lista não permitir um valor nulo.

package findInList;

import java.util.Arrays;

public class FindAValueInArray {
  public static void main(String[] args) {
    String[] arr = new String[] {"1", "2", "3"};
    String stringToSearch = "2";
    System.out.println(Arrays.asList(arr).contains(stringToSearch));
  }
}

O resultado do programa acima é o seguinte.

true

Verificar se um array contém um valor específico usando streams Java 8

No bloco de código acima, as primeiras duas linhas são semelhantes às do primeiro código. Aqui, usamos o método stream da classe Arrays para criar um stream de arrays. Este método retorna um fluxo sequencial com a matriz especificada como sua fonte. A classe Stream tem uma função chamada anyMatch(). O método recebe um predicate como entrada.

O Predicate é uma interface funcional que recebe uma função de argumento único e retorna um valor booleano. Ele contém um único método test(T t) que avalia o predicado no argumento fornecido. Ele retorna true se qualquer elemento do fluxo corresponder ao predicado fornecido, caso contrário, um valor false.

package findInList;

import java.util.Arrays;

public class FindAValueInArray {
  public static void main(String[] args) {
    String[] arr = new String[] {"1", "2", "3"};
    String stringToSearch = "2";
    System.out.println(Arrays.stream(arr).anyMatch(s -> s.equals(stringToSearch)));
  }
}

A saída do código acima é igual à do primeiro código.

Verificar se um array contém um valor específico usando um loop for simples

No bloco de código a seguir, usamos o loop tradicional for para iterar em arrays. O loop for é inicializado em expression1 com um valor de contador como 0. Agora o valor do contador é comparado com o comprimento de um array. Se a variável do contador for menor que o comprimento do array definida, a instrução dentro do bloco de código será executada.

Dentro do bloco for, comparamos cada elemento de um array usando o método equals da classe String. Se o status for avaliado como verdadeiro, a palavra-chave break será usada para interromper a execução do loop for. Se não for encontrado, o código será executado tantas vezes quanto o número de elementos do array.

Após o loop, uma instrução de impressão avaliará o valor da variável de status como true se um elemento for pesquisado na lista, caso contrário, imprimirá o valor false.

package findInList;

public class FindAValueInArray {
  public static void main(String[] args) {
    String[] arr = new String[] {"1", "2", "3"};
    String stringToSearch = "2";
    boolean status = false;
    for (int i = 0; i < arr.length; i++) {
      status = arr[i].equals(stringToSearch);
      if (status)
        break;
    }
    System.out.println(status);
  }
}

A saída é novamente a mesma fornecida no primeiro código.

Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artigo relacionado - Java Array