Compruebe si un valor está presente en una array en Java

Dada una array, la tarea es escribir un programa Java para verificar si un elemento específico está presente en esta array o no.

Ejemplos: 

Input: arr[] = [5, 1, 1, 9, 7, 2, 6, 10], key = 7
Output: true

Input: arr[] = [-1, 1, 5, 8], key = -2
Output: false

Una array es una estructura de datos que contiene un grupo de elementos. Por lo general, estos elementos son todos del mismo tipo de datos, como un número entero o una string. Las arrays se usan comúnmente en programas de computadora para organizar datos de modo que un conjunto relacionado de valores pueda ordenarse o buscarse rápidamente. Todos los elementos de la array se almacenan en ubicaciones de memoria contiguas. 

Enfoques

Existen numerosos enfoques para verificar si un elemento específico está presente en esta array o no en Java. Estos son – 

  • Uso del método de búsqueda lineal
  • Uso del método de búsqueda binaria
  • Usando el método List.contains()
  • Usando el método Stream.anyMatch()

1. Usando el método de búsqueda lineal : 

En esto, la lista o array se recorre secuencialmente y se verifica cada elemento. 

Sintaxis: 

for (int element : arr) {
    if (element == toCheckValue) {
        return true;
    }
}

Ejemplo: 

Java

// Java program to check whether
// an element is present in array or not
 
import java.util.Arrays;
import java.util.stream.IntStream;
 
class GFG {
 
    // Function return true if given element
    // found in array
    private static void check(int[] arr, int toCheckValue)
    {
        // check if the specified element
        // is present in the array or not
        // using Linear Search method
        boolean test = false;
        for (int element : arr) {
            if (element == toCheckValue) {
                test = true;
                break;
            }
        }
 
        // Print the result
        System.out.println("Is " + toCheckValue
                           + " present in the array: " + test);
    }
 
    public static void main(String[] args)
    {
 
        // Get the array
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
 
        // Get the value to be checked
        int toCheckValue = 7;
 
        // Print the array
        System.out.println("Array: "
                           + Arrays.toString(arr));
 
        // Check if this value is
        // present in the array or not
        check(arr, toCheckValue);
    }
}
Producción

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

Complejidad de tiempo: O(N)

Espacio Auxiliar: O(1)

2. Uso del método de búsqueda binaria : 

En esto, busque una array ordenada dividiendo repetidamente el intervalo de búsqueda por la mitad. Comience con un intervalo que cubra todo el arreglo. Si el valor de la clave de búsqueda es menor que el elemento en el medio del intervalo, reduzca el intervalo a la mitad inferior. De lo contrario, redúcelo a la mitad superior. Verifique repetidamente hasta que se encuentre el valor o el intervalo esté vacío.
En este ejemplo, el método Arrays.binarySearch() se usa para la búsqueda binaria.

Sintaxis: 

public static int 
    binarySearch(data_type arr, data_type key)

Ejemplo:

Java

// Java program to check whether
// an element is present in array or not
 
import java.util.Arrays;
import java.util.stream.IntStream;
 
class GFG {
 
    // Function return true if given element
    // found in array
    private static void check(int[] arr, int toCheckValue)
    {
        // sort given array
        Arrays.sort(arr);
 
        // check if the specified element
        // is present in the array or not
        // using Binary Search method
        int res = Arrays.binarySearch(arr, toCheckValue);
 
        boolean test = res > 0 ? true : false;
 
        // Print the result
        System.out.println("Is " + toCheckValue
                           + " present in the array: " + test);
    }
 
    public static void main(String[] args)
    {
 
        // Get the array
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
 
        // Get the value to be checked
        int toCheckValue = 7;
 
        // Print the array
        System.out.println("Array: "
                           + Arrays.toString(arr));
 
        // Check if this value is
        // present in the array or not
        check(arr, toCheckValue);
    }
}
Producción

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

Complejidad del tiempo: O(nlog(n))

Espacio Auxiliar: O(1)

3. Usando el método List.contains() : 

El método List contains() en Java se usa para verificar si el elemento especificado existe en la lista dada o no.

Sintaxis: 

public boolean contains(Object)

donde objeto-elemento a buscar.

Ejemplo: 

Java

// Java program to check whether
// an element is present in array or not
 
import java.util.Arrays;
 
class GFG {
 
    // Function return true if given element
    // found in array
    private static void check(Integer[] arr, int toCheckValue)
    {
        // check if the specified element
        // is present in the array or not
        // using contains() method
        boolean test
            = Arrays.asList(arr)
                  .contains(toCheckValue);
 
        // Print the result
        System.out.println("Is " + toCheckValue
                           + " present in the array: " + test);
    }
 
    public static void main(String[] args)
    {
 
        // Get the array
        Integer arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
 
        // Get the value to be checked
        int toCheckValue = 7;
 
        // Print the array
        System.out.println("Array: "
                           + Arrays.toString(arr));
 
        // Check if this value is
        // present in the array or not
        check(arr, toCheckValue);
    }
}
Producción

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

Complejidad de tiempo: O(N)

Espacio Auxiliar: O(1)

4. Usando el método Stream.anyMatch() : 

Stream anyMatch(Predicate predicate) devuelve si algún elemento de esta secuencia coincide con el predicado proporcionado. Puede que no evalúe el predicado en todos los elementos si no es necesario para determinar el resultado.

Sintaxis: 

boolean anyMatch(Predicate<T> predicate)

Where T is the type of the input to the predicate
and the function returns true if any elements of
the stream match the provided predicate, 
otherwise false.

Ejemplo 1: Uso del método Stream.of() para crear Stream

Java

// Java program to check whether
// an element is present in array or not
 
import java.util.Arrays;
import java.util.stream.IntStream;
 
class GFG {
 
    // Function return true if given element
    // found in array
    private static void check(int[] arr, int toCheckValue)
    {
        // check if the specified element
        // is present in the array or not
        // using anyMatch() method
        boolean test
            = IntStream.of(arr)
                  .anyMatch(x -> x == toCheckValue);
 
        // Print the result
        System.out.println("Is " + toCheckValue
                           + " present in the array: " + test);
    }
 
    public static void main(String[] args)
    {
 
        // Get the array
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
 
        // Get the value to be checked
        int toCheckValue = 7;
 
        // Print the array
        System.out.println("Array: "
                           + Arrays.toString(arr));
 
        // Check if this value is
        // present in the array or not
        check(arr, toCheckValue);
    }
}
Producción

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

Complejidad de tiempo: O(N)

Espacio Auxiliar: O(1)

Ejemplo 2: Uso del método Arrays.stream() para crear Stream

Java

// Java program to check whether
// an element is present in array or not
 
import java.util.Arrays;
import java.util.stream.IntStream;
 
class GFG {
 
    // Function return true if given element
    // found in array
    private static void check(int[] arr, int toCheckValue)
    {
        // check if the specified element
        // is present in the array or not
        // using anyMatch() method
        boolean test
            = IntStream.of(arr)
                  .anyMatch(x -> x == toCheckValue);
 
        // Print the result
        System.out.println("Is " + toCheckValue
                           + " present in the array: " + test);
    }
 
    public static void main(String[] args)
    {
 
        // Get the array
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
 
        // Get the value to be checked
        int toCheckValue = 7;
 
        // Print the array
        System.out.println("Array: "
                           + Arrays.toString(arr));
 
        // Check if this value is
        // present in the array or not
        check(arr, toCheckValue);
    }
}
Producción

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

Complejidad de tiempo: O(N)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por 29AjayKumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *