Neste programa, você aprenderá a verificar se um array contém um determinado valor em Java.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:
- Arrays Java
- Tipos de dados Java (primitivos)
Exemplo 1: Verifique se Int Array contém um determinado valor
public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 3; boolean found = false; for (int n : num) ( if (n == toFind) ( found = true; break; ) ) if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Resultado
3 é encontrado.
No programa acima, temos uma matriz de inteiros armazenados na variável num. Da mesma forma, o número a ser encontrado é armazenado em toFind.
Agora, usamos um loop for-each para iterar por todos os elementos de num e verificar individualmente se toFind é igual a n ou não.
Em caso afirmativo, definimos found para true
e sair do loop. Caso contrário, passamos para a próxima iteração.
Exemplo 2: Verifique se uma matriz contém um determinado valor usando Stream
import java.util.stream.IntStream; public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 7; boolean found = IntStream.of(num).anyMatch(n -> n == toFind); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Resultado
7 não foi encontrado.
No programa acima, em vez de usar um loop for-each, convertemos o array em um IntStream
e usamos seu anyMatch()
método.
anyMatch()
método recebe um predicado, uma expressão ou uma função que retorna um valor booleano. Em nosso caso, o predicado compara cada elemento n no fluxo com toFind e retorna true
ou false
.
Se algum dos elementos n retornar true
, found será definido true
como também.
Exemplo 3: Verifique se uma matriz contém um determinado valor para tipos não primitivos
import java.util.Arrays; public class Contains ( public static void main(String() args) ( String() strings = ("One", "Two", "Three", "Four", "Five"); String toFind = "Four"; boolean found = Arrays.stream(strings).anyMatch(t -> t.equals(toFind)); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Resultado
Quatro são encontrados.
No programa acima, usamos um tipo de dados não primitivo String
e usamos Arrays
o stream()
método para primeiro convertê-lo em um fluxo e anyMatch()
verificar se o array contém o valor fornecido paraFind.