Este proyecto es un kata realizado como ejercicio de práctica personal en Java. Su propósito es construir un programa que reciba un conjunto de números enteros y genere un histograma que muestre la frecuencia de aparición de cada número.
La clase Integers
permite al usuario ingresar un conjunto de números enteros, procesarlos para calcular su frecuencia y mostrar un histograma en consola. Este programa es un ejemplo práctico de manipulación de datos con estructuras clave como arreglos y mapas en Java.
-
Entrada de datos:
- Solicita al usuario el tamaño de un arreglo y los valores individuales de cada elemento.
- Valida que las entradas sean números enteros.
-
Procesamiento de datos:
- Calcula la frecuencia de aparición de cada número en el arreglo.
- Almacena las frecuencias en un
HashMap
donde:- La clave es el número ingresado.
- El valor es la cantidad de veces que aparece ese número.
-
Salida de datos:
- Imprime en consola el histograma con cada número y su frecuencia.
-
initialize()
: Método principal que organiza el flujo del programa en tres etapas:input()
: Solicita y almacena los datos del usuario.procedure()
: Calcula las frecuencias de los números usando un mapa.output()
: Muestra el histograma resultante en la consola.
-
Validaciones:
- Comprueba que el tamaño del arreglo y los elementos ingresados sean números enteros válidos.
-
Procesamiento del Histograma:
- Usa un
HashMap
para agrupar los números y contar sus apariciones.
- Usa un
- Compila y ejecuta el programa.
- Introduce el tamaño del arreglo y los números solicitados en consola.
- Observa el histograma generado con la frecuencia de cada número.
Tamaño del vector:
5
Introduzca elemento número:1
3
Introduzca elemento número:2
2
Introduzca elemento número:3
3
Introduzca elemento número:4
4
Introduzca elemento número:5
2
Valor: 3 Repeticiones: 2
Valor: 2 Repeticiones: 2
Valor: 4 Repeticiones: 1
Este proyecto refuerza conceptos fundamentales en Java, como:
- Uso de arreglos y mapas (
HashMap
). - Validación de entradas del usuario.
- Procesamiento y agrupamiento de datos.
- Permitir al usuario guardar los resultados en un archivo.
- Representar el histograma gráficamente (por ejemplo, con barras ASCII).
- Mejorar la interfaz de usuario con una librería gráfica.