Boletín 601. Programación funcional y ficheros en Java
En este boletín trabajaremos la carga de datos mediante archivos CSV. Además, procesaremos esa información mediante programación funcional para obtener los resultados deseados.
Ejercicios
Ejercicio 1. Realiza las siguientes tareas con streams de Java:
- Filtrar todos los números pares de la lista
listaNumeros, elevarlos al cuadrado y mostrarlos por pantalla. - Convertir una lista de números en una lista de
Stringy guardarla en la variablelistaString. - Indicar la cantidad de cadenas de
listaStringque tienen más de un carácter.
Solo debes completar el siguiente código:
public static void main(String[] args) throws Exception {
ArrayList<Integer> listaNumeros = new ArrayList<>();
for (int i=0; i < 100; i++) {
listaNumeros.add(i);
}
//1. TODO
System.out.println("-------------");
//2. TODO
for(String s: listaString) System.out.println(s);
System.out.println("-------------");
// 3. TODO
System.out.println(sol3);
}
Ejercicio 2. Lee el siguiente archivo csv. Almacena los valores de date, position, song, artist, duration_ms de cada fila en una lista de records.
A partir de esa lista, utilizando programación funcional, calcula:
- Imprime los artistas que tuvieron un número 1 en el año 2023.
- Indica el número de canciones diferentes que fueron número 1 en 2024.
- Indica las canciones de
Aitanaque estuvieron en las 10 primeras posiciones de las más escuchadas. - Indica las canciones que fueron más escuchadas (es decir, las que fueron número 1) durante el mes de agosto de 2024.
- Indica las posiciones diferentes que obtuvieron las canciones de
Aitanaordenadas de menor a mayor en una cadena de texto separada por comas. - Indica la posición más alta de escuchadas que alcanzó una canción de
Cris Mj. - Agrupa las canciones por artista en un
map. No es necesario eliminar las canciones duplicadas. - Indica el número de canciones que superan los 6 minutos y que estuvieron en las 5 primeras posiciones.