Buscar un valor en un ArrayList Java

Java

En artículos anteriores hemos visto la importancia de los ArrayList en Java, como declarar ArrayList y como llenar un ArrayList en Java, sin embargo una acción muy común cuando hacemos uso de este tipo de estructuras es buscar un valor en un ArrayList Java, esta necesidad puede surgir por motivos diversos, veamos cuales y como hacerlo:

Buscar un valor en un ArrayList Java

Primero que todo veamos algunas de las situaciones en las cuales se necesite buscar un valor en un ArrayList Java:

  • No deseas insertar dos valores iguales en el ArrayList.
  • Deseas realizar alguna acción en tu Software si un valor existe en el ArrayList.
  • Deseas eliminar dicho valor si existe en el ArrayList.
  • Deseas obtener la posición (Índice) de ese valor en el ArrayList.

Estos son solo algunos motivos por lo cual necesitemos buscar un valor en un ArrayList Java, pero entonces veamos como hacerlo:

Buscar un valor en un ArrayList Java con la propiedad contains

Con esta propiedad podemos de forma fácil encontrar el valor que necesitamos:

ArrayList Lista = new ArrayList();
Lista.add("Amarillo");
Lista.add("Azul");
Lista.add("Verde");
 
 if (Lista.contains("Azul")) {
 System.out.println("El color Azul Si está");
 }else{
 System.err.println("El color Azul No está");
 }

También podemos hacer uso de esta propiedad pasando una variable, esto es útil siempre y cuando el valor pueda cambiar o sea ingresado por el usuario.

ArrayList Lista = new ArrayList();
String color = JTextfield1.getText();
Lista.add("Amarillo");
Lista.add("Azul");
Lista.add("Verde");

if (Lista.contains(color)) {
System.out.println("El color "+color+" Si está");
}else{
System.err.println("El color "+color+" No está");
}

En el código anterior enviamos a buscar en nuestro ArrayList el valor que tenga la variable “color”, esta variable obtiene un valor de un JTextfield (Caja de texto).

Buscar un valor en un ArrayList Java validando todos los valores

Podemos validar todos los valores del ArrayList, esto lo logramos recorriendo el contenido de todos los índices con un ciclo for y comparandolos con el valor que deseamos encontrar con un condicional if.

String color = "Rojo";

ArrayList colores = new ArrayList();
 colores.add("Amarillo");
 colores.add("Azul");
 colores.add("Rojo");
 
 for (int i = 0; i < colores.size(); i++) {
 if(colores.get(i).equals(color)){
 System.out.println("El color "+color+" fue encontrado!");
 }
 }

El color Rojo fue encontrado!

El código anterior genera un único mensaje cuando encuentra el color rojo, si colocamos un else, recibimos un mensaje en cada iteración del ciclo.

String color = "Rojo";

ArrayList colores = new ArrayList();
 colores.add("Amarillo");
 colores.add("Azul");
 colores.add("Rojo");
 
 for (int i = 0; i < colores.size(); i++) {
 if(colores.get(i).equals(color)){
 System.out.println("El color "+color+" fue encontrado!");
 }else{
 System.out.println("El color "+color+" NO fue encontrado!");
 }
 }

El color Rojo NO fue encontrado!
El color Rojo NO fue encontrado!
El color Rojo fue encontrado!

Ambas alternativas son útiles al momento de encontrar valores contenidos en un ArrayList, solo debes determinar cual de las dos ofrece lo que demanda tu código.

¡Suscríbete a mi canal, para acceder a más contenidos gratuitos!

Deja un comentario

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