Ejercicios de programación en Java

Practica la programación en Java a través de más de 200 retos de codificación prácticos. Ideal para principiantes que deseen mejorar sus habilidades con proyectos del mundo real que cubren estructuras de datos, algoritmos, POO y conceptos básicos de Java.

Java

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Programa

Accediendo a Elementos en una LinkedList

Accediendo a los Elementos de un HashMap

Accediendo a Propiedades Estáticas desde Otra Clase

Comprobación de la igualdad de cadenas

Crear una lista enlazada con índice

Encontrar las notas mínimas y máximas de los estudiantes

Implementar la estructura de datos de doble cola (Deque)

Implementando Expresiones Lambda con Parámetros

Implementando la herencia jerárquica

Eliminar el segundo elemento de una ArrayList

Ordenar las edades de los jugadores en orden ascendente

Información del recuperador de métodos de clase

Ejecución Concurrente de Hilos

Contando la Ocurrencia de Caracteres

Expresión regular personalizada

Problema de compartición de datos en un sistema de ventas de boletos

Métodos predeterminados en múltiples interfaces

Dibujar Figuras Geométricas

De un cuarto a 0

Implementando una Cola Manualmente

Expresiones Lambda para Operaciones con Datos

Impresión de información de elementos de matriz

Eliminar números duplicados

Establecer un precio para las entradas de atracciones

Juego de División de Dinero entre Hermanos

Simulando una biblioteca

Resolviendo el Problema de la Distribución de Manzanas con Excepciones

Almacenar información de datos utilizando HashSet

Suma de Números Grandes

Suma de los dígitos de un número de tres dígitos

El único Dios

Uso de Stream

Validando el número de tarjeta de identidad

Sentencia de impresión simple en Java

Implementar cifrado y descifrado

Acceder y Modificar el Nombre del Estudiante

Accediendo al método anulado de la superclase

Accediendo a Propiedades Estáticas en una Clase

Accediendo al constructor de la superclase

Agregar elementos a ArrayList

Agregar elementos a ArrayLists en un índice específico

Programa de cálculo de área utilizando abstracción

Calcular el IMC utilizando el peso y la altura

Calcular el Volumen de un Cubo a Partir del Lado

Calcular el bono de empleados basado en el salario

Calcular el interés basado en el capital

Calcular la altura media de los jugadores

Calcular el porcentaje con arrays

Calcular el área de un rectángulo utilizando una clase

Calcular las dimensiones de un rectángulo

Calcular la Suma de los Dígitos

Calcular el factorial de un número

Cálculo del área de dos triángulos

Calculando la potencia de un número

Cálculo de la desviación estándar en Java

Cálculo de la Suma de los Números Naturales

Cálculo del área de un círculo

Cálculo del área de un cuadrado

Llamar a un método dos veces

Verificar Aprobado, Reprobado o Inválido

Verificando la temperatura IcyHot con Java

Comparando los primeros y últimos elementos de una matriz

Sumar Continuamente los Números Ingresados

Convertir entre kilómetros y millas usando Java

Contar las vocales en una cadena

Contando dígitos en un entero

Contando Ocurrencias del Carácter 'a'

Crear un programa de calculadora

Creación de clase enum - Tamaño

Creando una jerarquía Animal - Perro

Determinar los factores de un número

Determinar la cadena más larga a partir de entradas

Determinar el número máximo de saludos entre estudiantes

Determinar la calificación del estudiante

Determinando la Igualdad de Dos Argumentos

Determinar si un número es par o impar

Determinación de números Harshad en Java

Determinando si un número es de Armstrong

Determinando el estado de un número primo

Distribuir Chocolates a los Niños

Encapsulación en la gestión del salario de empleados

Constantes de enumeración como cadenas

Excluir múltiplos de tres de los números

Programa de conversión de Fahrenheit a Celsius

Encontrar diferencias entre dos conjuntos hash

Encontrar la intersección de dos HashSet

Encuentra el mayor múltiplo menor que 100

Encontrar el elemento más pequeño de una matriz

Encuentra al hermano más joven

Encontrando a Nemo en ArrayList

Encontrando números primos en intervalos

Encontrando el MCD de dos números

Encontrando el Mínimo Común Múltiplo

Programa FizzBuzz: Explicación de la entrada del usuario

Generar la tabla de multiplicar usando bucles

Mayor factor excluyendo el número mismo

Identificar números auto-divisibles

Identificando números abundantes usando Java

Implementar una interfaz para calcular el área de un cuadrado

Implementando una Cola con una LinkedList

Sobrecarga de métodos para diferentes parámetros

Sobrecarga de Métodos con Diferentes Tipos de Parámetros

Modificar elementos en un HashMap

Modificando una ArrayList con Java

Sobrescritura de Métodos en Múltiples Clases

Varios Clases que heredan de una Clase

Multiplicar una matriz por diez

Demostración de sobrecarga de método final

Sobreescritura del método de la clase padre

Verificación de números palíndromos

Realizar la adición de números complejos

Programa de conversión de libras a kilogramos

Tipos primitivos a clases envolventes

Imprimir cualquier tipo de datos

Imprimir números pares de una matriz

Imprimir caracteres no alfabéticos

Imprimir el valor de cualquier tipo de datos

Imprimiendo elementos de una matriz

Imprimir caracteres individuales en una cadena

Imprimiendo una frase tres veces

Eliminar elementos de un HashMap

Programa para invertir un número

Calculadora de ganancias/perdidas de una tienda

Programa de cálculo de interés simple

Concatenación de cadenas: dos textos combinados

Conversión de Cadena: Primera Letra en Mayúsculas

Resta de Coordenadas

Intercambio de dos números con variable temporal

Ángulos internos válidos de un triángulo

Validar la condición de año bisiesto

Verificar el estado de un número primo usando Java

Verificando la instancia de una clase

Programa de determinación de elegibilidad para votar

Juego de Batalla Aérea

Fisión Celular de Alienígenas

Área de un Círculo con Cualquier Radio

Mercado de Ventas de Automóvil

Programa de Cuenta Bancaria

Las flores compiten por el bello

Construcción y despliegue de Spring Boot

Distribución de Tarjetas de Negocios

Cifrado César

Cálculo del Volumen de un Cubo

Cálculo del volumen de un cilindro

Simulación de una sala de chat

Clasificación de Notas de la Clase

Propiedades y métodos de la clase

Clasificar Palabras por Categorías Gramaticales

Jaula de Pollos y Conejos en Convivencia

Contenido del archivo de configuración

Configurar parámetros de clase con anotaciones

Contando las Ocurrencias de una Subcadena

Definir Sus Anotaciones

Diseño e implementación de la Interfaz Gráfica

Diseño e implementación de múltiples interfaces

Determinar la factibilidad del regreso de la nave espacial

Determinar la factibilidad de un triángulo con manejo de excepciones

Sincronización de los Filósofos Comensales

Mostrando información de datos utilizando Iterator

Dividir Manzanas con Manejo de Excepciones

Programa eficiente de análisis de notas de estudiantes

Ingresar información de estudiantes

Clase Enum para la Información de Género

Programación de la secuencia de Fibonacci

Filtrado del contenido del archivo

Carga de archivos basada en el protocolo UDP

Instrucciones de control de flujo para múltiples requisitos

Completado de código divertido

Obtener información de la página de inicio de Google

Manejo de calificaciones incorrectas

Hola LabEx usando Java

¿Cuántos días tiene cada mes?

Implementar el hilo del temporizador de cuenta atrás

Implementar una clase Stock

Implementando el Triángulo de Pascal

Implementando la división de cadenas

Implementando la clase de utilidades de cadenas

Servicio Inteligente de Llamadas de Atención Médica

Intersección de listas enlazadas

Cálculo del salario de un ingeniero Java

La generosidad de Kong Rong

Simulación del juego de cartas de Truco usando Java

Cálculo automático de la altura de lanzamiento de Wayne

Clasificación de Información de Registros

Amor a primera vista

Maximizar la puntuación en el Ajedrez con Aviones utilizando programación dinámica

Estrategia para maximizar la destrucción de aviones

Valor máximo de tres números.

Modificar el diseño del arma utilizando herencia

Juicio de Número Narcisista

Navegando el Puente Espacial con Arrays de Java

Marketing de Joyas No Money Jewelry Store

Número de Números Palindrómicos

Nüwa Crea a los Seres Humanos

Obtener Objetos de Clase de Diferentes Clases

Operaciones con Referencias a Métodos

Selección óptima de monedas para la compra de muelles

Optimización de la simulación de una carrera de relevos con hilos

Salida de un triángulo

Mostrando la información del libro

Análisis de la información de datos XML con DOM

Punto dentro de un triángulo

Implementación de la Cola Productor-Consumidor

Crear un objeto Persona mediante reflexión

Liberar el recurso Scanner con finally

Rescatar a la princesa con ejecución condicional

Invertir un Array Unidimensional en Java

Lista de palabras de salida invertida

Invertir el orden de las palabras en oraciones en inglés

Reescribiendo el método equals

Ejecución de datos alternativamente en tres grupos

Análisis SAX de datos XML

Búsqueda en una matriz bidimensional

Consulta de información de usuario con Servlet

Sencillo sistema de gestión de estudiantes

Sistema de gestión universitaria simulado

Control de velocidad de la nave espacial

Deme clemencia, mi señor

Recorrido en espiral de un árbol

Subir escaleras y predicción de saldo

Almacenar información de datos utilizando TreeSet

Entrenamiento de fuerza con método acumulativo

Constructores de la clase String

Estadísticas de información de cadenas

Métodos de la clase String

Sistema de Gestión de Estudiantes

Sistema de clasificación de notas de estudiantes

Conteo de Ocurrencias de Subcadenas

Juego de Invocación de Duendes

El Bolsillo Mágico

Las paredes tienen oídos

La Tierra Errante

El Deseo de Cinco Centavos

Comprendiendo el Pool de Constantes

Validación de registro de usuario con excepciones

Usar la herencia para ahorrar código

¿Cuándo puedo ahorrar suficiente dinero?

Escribir objetos en un archivo

Yin y Yang

Introducción

Refuerza tu capacidad para resolver problemas Java mediante una biblioteca de 239 desafíos prácticos. La colección va desde sintaxis y aritmética hasta estructuras, diseño orientado a objetos, archivos, APIs funcionales, concurrencia, redes y algunas tecnologías de aplicación.

Es un banco no lineal, no una ruta guiada única. Puedes elegir tareas del tema que estudias, revisar áreas débiles o avanzar desde programas de consola hacia ejercicios especializados sin completar todo en orden.

Lo que aprenderás

Al completar los desafíos relevantes, aprenderás a:

  • Aplicar entrada, operadores, condiciones, bucles, métodos, arrays, matrices, strings y números en programas pequeños.
  • Resolver problemas de cálculo, propiedades numéricas, secuencias, búsqueda, ordenación, texto y recorridos.
  • Construir y manipular ArrayList, LinkedList, colas, deques, maps, sets, iteradores y estructuras propias.
  • Modelar comportamiento con clases, encapsulación, herencia, abstracción, interfaces, sobrecarga, sobrescritura, enums y genéricos.
  • Usar lambdas, referencias a métodos, streams, anotaciones, reflexión y expresiones regulares en tareas concretas.
  • Gestionar excepciones y trabajar con texto, serialización, configuración y parsing XML DOM o SAX.
  • Coordinar threads con estado compartido, sincronización, colas productor-consumidor y ejercicios clásicos de concurrencia.
  • Explorar escenarios aislados de GUI, UDP, servlets, HTTP y Spring Boot más allá del núcleo de Java.

A quién va dirigido este curso

Está dirigido a quienes ya conocen la sintaxis Java y quieren muchos ejercicios independientes. Sirve para práctica de coding, repaso de APIs o características específicas y retos posteriores al currículo introductorio.

Requisitos previos: Debes poder escribir, compilar y depurar programas Java básicos y entender variables, flujo, métodos, clases y arrays. Los desafíos especializados requieren bases en colecciones, archivos, concurrencia, redes, XML, servlets o Spring Boot; la colección no enseña todo en secuencia.

Entorno de aprendizaje: Los 239 desafíos usan entornos Java proporcionados. La mayoría implica editar, compilar y ejecutar código, mientras tareas concretas usan archivos, GUI, redes, servlet tooling o Spring Boot; el entorno puede variar por desafío.

Preguntas frecuentes

¿Es realmente un curso Beginner?

Está marcado como Beginner y muchas tareas son fundamentales, pero también incluye genéricos, reflexión, concurrencia, redes, servlets y Spring Boot. Completa Java para Principiantes primero si eres nuevo.

¿Debo completar los 239 desafíos en orden?

No. El curso está configurado como no ordenado. Úsalo como biblioteca y elige ejercicios según tu tema y preparación.

¿Son tutoriales guiados o ejercicios independientes?

Son tareas de tipo desafío, no un recorrido de 239 lecciones. Cada una plantea un problema que debes implementar, por lo que sirven para aplicar conceptos ya estudiados.

¿Las tareas de Spring Boot, servlet, GUI y redes enseñan esos temas en profundidad?

No. Son extensiones individuales dentro de una colección mucho mayor. Para aprender sistemáticamente frameworks, web, desktop o redes, utiliza cursos dedicados tras construir la base Java.

Profesor

labby
Labby
Labby is the LabEx teacher.