Em Java 4 maneiras de verificar se um array contém um valor específico? IntStream, Arrays.asList (algoritmo de pesquisa linear)
Publicados: 2019-09-11
Programa Java para algoritmo de busca linear.
Esta é a solução mais simples e completa para você se você deseja verificar se ArrayList contém um valor específico como String, Integer, Long ou Double.
Com a combinação de Java7 e Java8 – there are 4 different ways
realizar a verificação de conteúdo.
- Método String.contains() legado
- IntStream do
IntStream -> anyMatch()
- LongStream do
LongStream -> anyMatch()
-
Arrays.asList
()
Vamos discutir e verificar todos os 4 métodos acima neste Programa Java. Este tutorial java funcionará se você tiver as perguntas abaixo:
- Como posso testar se um array contém um determinado valor?
- verifique se a matriz contém valor em java
- array java contém int
- verifique se o array contém string javascript
Se você se pergunta, existe alguma maneira de substituir o método contains() em Java? Bem, então siga o tutorial detalhado sobre como substituir o método contains() / findMe() por conta própria.
Vamos começar a implementar o programa com todos os 4 métodos acima:
Passo 1
Vamos entender primeiro nossa lógica e o que vamos fazer neste tutorial Java.
- Criar classe Java
CrunchifyCheckIfContains
.java - Crie int[]
crunchifyIntArray
com 15 elementos nele - Imprima (system.out.println) todos os 15 elementos
- Então Test-1: obtenha valores aleatórios 5 e verifique
- se o valor contiver, imprimiremos
Matched
- se o valor não corresponder, imprima
No Match
- se o valor contiver, imprimiremos
- Teste-2: Execute a mesma verificação com o utilitário Java8 usando IntStream -> anyMatch()
- Teste-3: Crie
crunchifyLongArray
com 15 elementos e execute a verificação com o Java8 Utility usando LongStream -> anyMatch() - Teste-4: Execute a mesma verificação de conteúdo usando Arrays . método asList()
Passo 2
Copie o programa abaixo completo no Eclipse IDE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
package crunchify . com . tutorials ; import java . util . Arrays ; import java . util . List ; import java . util . stream . IntStream ; import java . util . stream . LongStream ; /** * @author Crunchify.com * version: 1.0 */ public class CrunchifyCheckIfContains { public static void main ( String [ ] args ) { int crunchifyRandomNo ; // Let's create integer array with 15 values in it int [ ] crunchifyIntArray = new int [ 15 ] ; for ( int i = 1 ; i < = 14 ; i ++ ) { crunchifyRandomNo = ( 7 + ( int ) ( Math . random ( ) * ( ( 95 - 7 ) ) ) ) ; crunchifyIntArray [ i ] = crunchifyRandomNo ; } log ( "Here is an array crunchifyIntArray[i] ==> " + Arrays . toString ( crunchifyIntArray ) ) ; log ( "\n" ) ; // Now let's run loop for 10 times to see if my random value is part of int[] crunchifyIntArray log ( "============= Test1: Legacy Java7 Way =============" ) ; for ( int j = 1 ; j < = 5 ; j ++ ) { crunchifyRandomNo = ( 7 + ( int ) ( Math . random ( ) * ( ( 95 - 7 ) ) ) ) ; if ( crunchifyContainsMethod ( crunchifyIntArray , crunchifyRandomNo ) ) { log ( "Matched: " + crunchifyRandomNo + " in array crunchifyIntArray[i]" ) ; } else { log ( "No Match for: " + crunchifyRandomNo ) ; } } log ( "\n" ) ; // this is java8 way to find if Array contains specified value. java8IntStreamLongStreamExample ( crunchifyIntArray ) ; java8ArraysAsListExample ( crunchifyIntArray ) ; } // Java7: Simple Legacy way to check if specified value is there in Array :) public static boolean crunchifyContainsMethod ( int [ ] crunchifyIntArray , int matchedValue ) { for ( int isMatched : crunchifyIntArray ) { if ( isMatched == matchedValue ) { return true ; } } return false ; } // Java8: IntStream -> anyMatch() and LongStream.anyMatch() Example public static void java8IntStreamLongStreamExample ( int [ ] crunchifyIntArray ) { // Intstream: A sequence of primitive int-valued elements supporting sequential and parallel aggregate operations. // anyMatch() returns whether any elements of this stream match the provided predicate. // Now let's run loop for 10 times to see if my random value is part of int[] crunchifyIntArray log ( "============= Test2: Java8 IntStream->anyMatch() Way =============" ) ; for ( int j = 1 ; j < = 5 ; j ++ ) { int crunchifyRandomNo = ( 7 + ( int ) ( Math . random ( ) * ( ( 95 - 7 ) ) ) ) ; if ( IntStream . of ( crunchifyIntArray ) . anyMatch ( myValue - > myValue == crunchifyRandomNo ) ) { log ( "Matched " + crunchifyRandomNo + " in array crunchifyIntArray[i]" ) ; } else { log ( "No Match for: " + crunchifyRandomNo ) ; } } log ( "\n" ) ; long [ ] crunchifyLongArray = new long [ 15 ] ; for ( int i = 1 ; i < = 14 ; i ++ ) { long crunchifyRandomLongNo = ( 7 + ( long ) ( Math . random ( ) * ( ( 95 - 7 ) ) ) ) ; crunchifyLongArray [ i ] = crunchifyRandomLongNo ; } log ( "Here is an array crunchifyLongArray[i] ==> " + Arrays . toString ( crunchifyLongArray ) ) ; log ( "\n============= Test3: Java8 LongStream->anyMatch() Way =============" ) ; for ( int j = 1 ; j < = 5 ; j ++ ) { long crunchifyRandomNo = ( 7 + ( long ) ( Math . random ( ) * ( ( 95 - 7 ) ) ) ) ; if ( LongStream . of ( crunchifyLongArray ) . anyMatch ( myValue - > myValue == crunchifyRandomNo ) ) { log ( "Matched " + crunchifyRandomNo + " in array crunchifyLongArray[i]" ) ; } else { log ( "No Match for: " + crunchifyRandomNo ) ; } } log ( "\n" ) ; } // Java8: Arrays.asList() contains() and containsAll() Example private static void java8ArraysAsListExample ( int [ ] crunchifyIntArray ) { String [ ] crunchifyCompany = new String [ ] { "Facebook" , "Twitter" , "Google" } ; // Convert String Array to List List < String > crunchifyList = Arrays . asList ( crunchifyCompany ) ; log ( "============= Test4: Arrays.asList() contains() and containsAll() Example =============" ) ; if ( crunchifyList . contains ( "Twitter" ) ) { log ( "Matched Found for Twitter" ) ; } if ( crunchifyList . contains ( "Twitter" ) | | crunchifyList . contains ( "Facebook" ) ) { log ( "Matched Found for Twitter and Facebook" ) ; } // A and B if ( crunchifyList . containsAll ( Arrays . asList ( "Google" , "Facebook" ) ) ) { log ( "Matched Found for Google and Facebook" ) ; } } // Simple log utility private static void log ( String string ) { System . out . println ( string ) ; } } |
Etapa 3
Execute o programa no Eclipse usando o botão direito do mouse no programa e clique em Executar como aplicativo Java. Você deve ver o resultado do console semelhante a este:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
https : //crunchify.com/how-to-find-alexa-rank-meta-tag-value-for-all-in-one-webmaster-premium/comment-page-1/#comment-59190 Here is an array crunchifyIntArray [ i ] == > [ 0 , 72 , 26 , 87 , 12 , 45 , 27 , 34 , 12 , 89 , 9 , 65 , 79 , 15 , 16 ] ============= Test1 : Legacy Java7 Way ============= No Match for : 32 No Match for : 33 Matched 79 in array crunchifyIntArray [ i ] No Match for : 40 Matched 12 in array crunchifyIntArray [ i ] ============= Test2 : Java8 IntStream - > anyMatch ( ) Way ============= Matched 34 in array crunchifyIntArray [ i ] No Match for : 58 No Match for : 62 Matched 27 in array crunchifyIntArray [ i ] No Match for : 17 Here is an array crunchifyLongArray [ i ] == > [ 0 , 74 , 93 , 61 , 78 , 42 , 74 , 52 , 59 , 88 , 61 , 34 , 27 , 59 , 84 ] ============= Test3 : Java8 LongStream - > anyMatch ( ) Way ============= No Match for : 15 Matched 84 in array crunchifyLongArray [ i ] No Match for : 23 No Match for : 39 No Match for : 69 ============= Test4 : Arrays . asList ( ) contains ( ) and containsAll ( ) Example ============= Matched Found for Twitter Matched Found for Twitter and Facebook Matched Found for Google and Facebook |
Deixe-me saber se você tem alguma pergunta.