¿Ya dominas lo básico? Un curso estructurado de Java es la vía rápida para dar el salto.
Ver cursos de Java en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (System.out.println)
- 03Trabajar con variables
- 04Condicionales (la sentencia if)
- 05Repetir (la sentencia for)
- 06Escribir un método
- 07Trabajar con arrays
- 08Repetir (la sentencia while)
- 09Clases (programación orientada a objetos)
- 10Manejo de errores (try-catch)
- 11Ordenar un array
- 12Funciones recursivas
- 13Usar la biblioteca estándar
- 14La sentencia switch
- 15El operador ternario
- 16Herencia (extender una clase)
- 17Escribir comentarios
- 18Operadores lógicos (&&, ||, !)
- 19Constantes (final)
- 20Dividir y unir cadenas (split, join)
- 21Escribir código seguro frente a null
- 22Buscar en una colección (contains)
- 23Transformar una lista (Stream map)
- 24Arrays de dos dimensiones (datos en tabla)
- 25Escribir una clase de excepción propia
- 26Sobrecarga de métodos
- 27Trabajar con HashSet (conjuntos)
- 28Comprobar con assert (tu primer paso hacia las pruebas)
- 29Funciones de orden superior (pasar una función como argumento)
- 30Pilas y colas (estructuras de datos básicas)
- 31Conversión de tipos (casting), lo básico
- 32Introducción a las expresiones regulares
- 33El algoritmo de búsqueda binaria
- 34Construir un cifrado César (desplazamiento de caracteres)
- 35Entender cómo funciona la ordenación de burbuja
- 36Construir y mostrar fechas
- 37Escribir varios casos de prueba juntos
- 38Acelerar cálculos con memoización (caché)
- 39Normalizar cadenas (trim, unificar mayúsculas)
- 40Copia superficial y copia profunda
- 41Tipos enumerados (enum), lo básico
- 42Aplanar una lista
- 43Invertir una cadena y comprobar si es palíndromo
- 44Emparejar dos listas (la operación zip)
- 45Redondear números (floor, ceil, round)
- 46Cadenas de varias líneas (bloques de texto)
- 47Métodos que devuelven varios valores (record)
- 48Calcular el MCD y el MCM (algoritmo de Euclides)
- 49Dar formato a números (rellenar dígitos, decimales)
- 50Limpieza con try/catch/finally
- 51Escribir métodos genéricos
- 52Leer y escribir archivos, lo básico
- 53Generar números aleatorios
- 54Operadores a nivel de bit (AND, OR, XOR, desplazamientos)
- 55Leer argumentos de la línea de órdenes
- 56Esperar un tiempo fijo (Thread.sleep)
- 57Cuidado con los errores de redondeo en coma flotante
- 58Leer de la entrada estándar
- 59FizzBuzz (el ejercicio clásico)
- 60Comprobar si un número es primo
- 61Operaciones de conjunto (unión, intersección, diferencia)
- 62Convertir entre bases (binario, hexadecimal)
- 63Comprobar paréntesis equilibrados (aplicación de pilas)
- 64Comprobar si dos palabras son anagramas
- 65Comprobar si un año es bisiesto
- 66Convertir temperaturas (Celsius a Fahrenheit)
- 67Descomposición en factores primos
- 68[Aplicado] Construye una herramienta de inventario
Buscar en una colección (contains)
En esta lección comprobarás si un elemento está dentro de una lista.
contains() devuelve verdadero si el elemento está, e indexOf() su posición o -1 si no aparece.
El código de ejemplo busca una fruta en una lista.
Lo que hay que entender es que contains() usa equals() por dentro. Con textos funciona como esperas, pero con objetos propios no encontrará nada a menos que hayas redefinido equals() y hashCode(): por defecto compara identidad, así que dos objetos con los mismos datos se consideran distintos.
Y una cuestión de coste que importa en serio: buscar en una List recorre los elementos uno a uno. Si vas a buscar muchas veces, un HashSet o un HashMap responden en tiempo prácticamente constante. Cambiar la estructura es lo que convierte un programa lento en uno rápido.
🧪 Este sitio no puede compilar ni ejecutar Java directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
