CodeGym
Promoción
CodeGym University
Aprendizaje
Cursos
Tareas
Encuestas & Cuestionarios
Juegos
Ayuda
Horario
Comunidad
Usuarios
Foro
Chat
Artículos
Historias de éxito
Actividad
Reseñas
Suscripciones
Tema claro

Lecciones

  • Reseñas
  • Sobre nosotros
Comenzar
Comenzar a aprender
Comienza a aprender ahora
  • Mi progreso
  • Cursos
  • Universidad
  • Mapa de misiones
  • Lecciones
  • Contratos de equals y hashCode

    JAVA 25 SELF
    Nivel 29,Lección 0
    En esta lección veremos cómo definir correctamente la igualdad de objetos en Java: en qué se diferencia comparar referencias con el operador == de comparar el contenido con el método equals, por qué el contrato equals/ hashCode es crítico para colecciones como HashSet y HashMap, y cómo relacionarlo con compareTo de Comparable. Ejemplos paso a paso, mejores prácticas y un repaso de errores típicos te ayudarán a evitar trampas al trabajar con tablas hash y colecciones ordenadas.
    Disponible
  • Clase Objects: métodos equals, hashCode, hash

    JAVA 25 SELF
    Nivel 29,Lección 1
    En esta lección analizamos el «cuchillo suizo» java.util.Objects: cómo comparar de forma segura con Objects.equals, calcular hashes de manera concisa con Objects.hash, delegar la comparación mediante Objects.compare, garantizar valores no- null con Objects.requireNonNull, y aplicar Objects.isNull/ Objects.nonNull en streams. Mostraremos una implementación correcta de equals/ hashCode/ compareTo, revisaremos casos prácticos y errores típicos al trabajar con HashMap/ HashSet.
    Disponible
  • Interfaz Comparable: implementación, compareTo

    JAVA 25 SELF
    Nivel 29,Lección 2
    En esta lección analizamos el orden natural de los objetos en Java a través de la interfaz Comparable y del método compareTo: para qué sirve, cómo implementarlo correctamente, cómo funciona la ordenación de colecciones ( Collections.sort y List.sort), comparación por varios campos, gestión de valores null y coherencia con equals/ hashCode. Veremos buenas prácticas, errores frecuentes y ejemplos prácticos con la clase Person.
    Disponible
  • Interfaz Comparator: creación y uso

    JAVA 25 SELF
    Nivel 29,Lección 3
    En la lección analizamos cuándo usar Comparator en lugar de Comparable, la sintaxis y el contrato del método compare(T o1, T o2), la práctica de ordenar listas con Collections.sort y List.sort, y la creación de comparadores tanto como clases separadas como mediante clases anónimas y expresiones lambda. Veremos la ordenación multinivel, el trabajo con valores null, la búsqueda con Collections.binarySearch, la inversión del orden con reversed(), así como buenas prácticas y errores típicos (por ejemplo, por qué conviene usar Integer.compare y no a - b).
    Disponible
  • Búsqueda y ordenación de elementos en colecciones de Java

    JAVA 25 SELF
    Nivel 29,Lección 4
    En esta lección veremos técnicas prácticas para trabajar con colecciones: búsqueda de elementos mediante los métodos contains, indexOf, lastIndexOf; búsqueda por condición con un bucle for y la instrucción break; obtención del mínimo y el máximo con la clase Collections. Practicaremos ordenar listas con Collections.sort y List.sort, usar Comparator, ordenar pares de Map y también objetos por un campo. Al final comentaremos errores típicos: listas inmutables de List.of, intentos de ordenar Set/ Map y comparadores incorrectos.
    Disponible
  • Introducción a Stream API: para qué sirven los streams

    JAVA 25 SELF
    Nivel 30,Lección 0
    En esta lección veremos por qué el enfoque imperativo para procesar colecciones se llena rápidamente de boilerplate, y cómo Stream API lleva el código a un estilo declarativo: cadenas de operaciones filter, map, collect, composición sencilla, menos errores y paralelismo fácil mediante parallelStream(). Mostraremos áreas de uso, la historia de su aparición y los errores típicos que conviene evitar.
    Disponible
  • Operaciones básicas de Stream API: map, filter, collect

    JAVA 25 SELF
    Nivel 30,Lección 1
    Introducción paso a paso a las operaciones básicas de Stream API: cómo obtener un flujo a partir de una colección y de un array ( stream(), Arrays.stream, Stream.of), en qué se diferencian las operaciones intermedias ( filter, map, distinct) de las terminales ( collect, forEach, count) y cómo recopilar resultados con Collectors ( toList, toSet, joining). Ejemplos prácticos, mini‑ejercicios y una sección con errores típicos te ayudarán a dominar rápidamente el procesamiento en pipeline de datos.
    Disponible
  • Subconjuntos de la Stream API: distinct, limit, skip

    JAVA 25 SELF
    Nivel 30,Lección 2
    En esta lección analizamos tres operaciones clave de la Stream API para trabajar con subconjuntos de datos: distinct (eliminación de duplicados), limit (restricción de la cantidad de elementos) y skip (omisión de los primeros elementos). Verás cómo funcionan con colecciones de cadenas y de objetos, cómo afecta la implementación de equals/ hashCode al resultado de distinct, cómo combinar operaciones para paginación y selección del top‑N, y qué errores aparecen con más frecuencia.
    Disponible
  • Métodos forEach y peek: efectos secundarios

    JAVA 25 SELF
    Nivel 30,Lección 3
    En esta lección analizamos las operaciones de streams para efectos secundarios: la terminal forEach y la intermedia peek. Entenderemos cuándo y para qué usarlas, en qué se diferencian, por qué tras forEach el stream «se cierra», mientras que peek no cambia los datos y solo se ejecuta cuando hay una operación terminal. Mostraremos ejemplos prácticos, comentaremos puntos no evidentes y errores típicos (incluidos ConcurrentModificationException y la sustitución incorrecta de collect por forEach).
    Disponible
  • Transformación de colecciones mediante Stream

    JAVA 25 SELF
    Nivel 30,Lección 4
    Guía práctica sobre la transformación de colecciones con Stream API: conversión List ↔ Set, construcción de mapas con Collectors.toMap() (incluido el tratamiento de duplicados), unión en una cadena con Collectors.joining(), y análisis de operaciones terminales e intermedias ( forEach, collect, count, anyMatch, etc.). Dentro encontrarás ejemplos claros, explicaciones y errores típicos.
    Disponible
  • Métodos sum, count, average, max, min en la Stream API

    JAVA 25 SELF
    Nivel 31,Lección 0
    En esta lección analizamos las operaciones de agregación de la Stream API: cómo contar con count(), calcular sumas y medias con streams primitivos ( IntStream, LongStream, DoubleStream) y los métodos sum(), average(), así como encontrar extremos con min()/ max(). Además, hablaremos por separado de los contenedores Optional, OptionalInt, OptionalLong, OptionalDouble y de las formas correctas de extraer valores: orElse(...), ifPresent(...), orElseThrow(). Aprenderemos a usar los colectores Collectors.summingInt, Collectors.averagingInt, Collectors.maxBy/ minBy y combinarlos con groupingBy. Al final — análisis de errores típicos y matices.
    Disponible
  • Métodos reduce y collect: agregación de datos

    JAVA 25 SELF
    Nivel 31,Lección 1
    Analizamos las operaciones terminales de streams: la reducción universal reduce() y el potente recolector collect(). Entenderemos las firmas con identity, accumulator y combiner, aprenderemos a recolectar datos con los colectores listos de Collectors ( toList(), toMap(), joining(), groupingBy()) y veremos cuándo conviene preferir collect() en lugar de reduce(). Además, hablaremos de Optional, del manejo de duplicados en toMap() y de los matices de los streams paralelos.
    Disponible
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 30
Aprender
  • Registro
  • Curso de Java
  • Ayuda con tareas
  • Precios
  • Sintaxis de Java
Comunidad
  • Usuarios
  • Artículos
  • Foro
  • Chat
  • Historias de éxito
  • Actividad
  • Programa de afiliados
Empresa
  • Acerca de nosotros
  • Contactos
  • Reseñas
  • Sala de prensa
  • CodeGym para EDU
  • Preguntas frecuentes
  • Soporte
CodeGymCodeGym es un curso en línea para aprender programación Java desde cero. Este curso es una forma perfecta de dominar Java para principiantes. Contiene más de 1.200 tareas con verificación instantánea y un conjunto esencial de teoría sobre los fundamentos de Java. Para ayudarte a tener éxito en la formación, hemos implementado una serie de funciones motivacionales: cuestionarios, proyectos de programación, contenido sobre aprendizaje eficiente y contenidos sobre la carrera profesional de un desarrollador Java.
Síguenos
Idioma de la interfaz
English Deutsch
Español
हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Los programadores se hacen, no nacen" © 2026 CodeGym
MastercardVisa
"Los programadores se hacen, no nacen" © 2026 CodeGym