Verificar se um array contém um valor específico em Java
-
Verifique se um array contém um valor específico usando o método
array.contains()
em Java - Verificar se um array contém um valor específico usando streams Java 8
-
Verificar se um array contém um valor específico usando um loop
for
simples
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 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