A continuación veremos cómo podemos buscar en un Array con Java. El objetivo es cargar una serie de elementos, en este caso cadenas de texto, dentro del Array y luego buscar si hay uno de éstos presente dentro de dicho Array o en caso contrario, saber si no está en la lista de elementos.
El primer paso será crear un array Java con elementos. En este caso crearemos un array de cadenas. La forma de vincularlo será la siguiente:
1. String[] nombres = {«Marta»,»Ana»,»Luis»,»Rodrigo»,»Virginia»};
Los arrays en Java no tienen un método de búsqueda en concreto, sin embargo, las listas en Java sí que lo tienen. Así que convertiremos el array en una lista mediante el método Arrays.asList().
1. Arrays.asList(nombres);
Con la lista preparada, podremos utilizar el método .contains() lo que nos permitirá llevar a cabo búsqueda del elemento.
1. Arrays.asList(nombres).contains(«cadena a buscar»);
A continuación tendremos que encapsular este código en un método al cual nombraremos searchList() cuyo objetivo sea conseguir un array y la cadena a buscar. Este método devuelve un valor “booleano”, lo que nos arrojará true si el valor se encuentra en el array y false en el caso contrario.
private static boolean searchList(String[] strings, String searchString) {
return Arrays.asList(strings)
.contains(searchString);
}
Sólo restará acudir al método searchList() estableciendo el array que creamos desde un inicio de nuestro código y el valor que deseamos buscar.
if (searchList(nombres,»Fernando»))
System.out.println(«Valor en la lista»);
else
System.out.println(«Valor no encontrado»);
Una vez concluido estos pasos, tendremos implementado le código para poder buscar en un Array con Java.
Búsqueda binaria con Java
Una búsqueda binaria con Java permite ubicar un elemento dentro de una colección, en este caso un array, comparando los valores del array.
El proceso de este tipo de búsqueda binaria es el siguiente:
- Ordenar los elementos, debido a que se buscará por ubicación dentro de la lista de elementos.
- Validar si el número que sea la mitad del array concuerda con la búsqueda del número.
- En el caso de no coincidir se debe ejecutar esta comparación: si el elemento que deseamos es menos al elemento que está en medio del array se quedará con la parte izquierda del array, si el elemento que queremos encontrar es mayor que el elemento que está en medio del array se quedará en la parte derecha.
- Elegir una de las dos partes y repetir el punto 2, tantas veces hasta que se encuentre el número buscado o de lo contrario tener presente que no se localiza.
Para realizar una localización binaria en Java deberemos tener un array y el número que queremos encontrar.
int[] numeros = {12,45,67,27,89,84,65,21,44};
int numberToSearch = 44;
Después ordenaremos el array, en dado caso de que no lo esté. Para esto, utilizaremos el método Array.sort() el cual recibirá el array como parámetro.
Arrays.sort(numeros);
En este caso utilizaremos el método Arrays.binarySearch(array,numero) que llevará a cabo la búsqueda.
Este método recibe por un lado el array ordenado con los números y por otro el número que buscamos. En el caso de encontrar el número nos arrojará un valor entero con el número y posición dentro del array, si no se encuentra dentro del array indicará un número negativo.
Utilizaremos la siguiente estructura para buscarlo.
if (Arrays.binarySearch(numeros, numberToSearch)>0)
System.out.println(«El número » + numberToSearch + » está en el Array»);
else
System.out.println(«El número » + numberToSearch + » NO está en el Array»);
De esta forma tendremos una búsqueda binaria con Java.
Leíste: Buscar en un Array con Java, te recomendamos: Cómo configurar HTTPS con create-react-app
Te invitamos a que nos sigas en nuestras redes sociales: Facebook, Twitter, Instagram y Youtube con el perfil: @tortugacode