Soluciones ejercicios HashMap

package com.trifulcas.colecciones;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;

public class SolucionesColecciones {

	public static void main(String[] args) {
		HashMap<String, Integer> notas = new HashMap<>();
		notas.put("JS", 5);
		notas.put("c#", 8);
		notas.put("Java", 9);
		System.out.println(calculaMedia(notas));
		System.out.println(100 / 3.0);
		HashMap<String, ArrayList<Integer>> productos = new HashMap<>();
		productos.put("Tuerca", new ArrayList<>());
		productos.get("Tuerca").add(1);
		productos.get("Tuerca").add(2);
		productos.get("Tuerca").add(3);
		productos.put("Tornillo", new ArrayList<>(Arrays.asList(2, 3, 4)));
		productos.put("Arandela", new ArrayList<>(Arrays.asList(4, 5, 6)));
		System.out.println(productos);
		System.out.println(precioMinimo(productos));
	}

	static double calculaMedia(HashMap<String, Integer> notas) {
		double suma = 0;
		// Recorro los valores que es lo que me hace falta
		for (int nota : notas.values()) {
			suma += nota;
		}
		// Redondear a dos decimales OJO cuando en java dividimos dos enteros nos hace
		// la división entera
		// Por lo tanto quita los decimales. Si queremos conservarlos ponemos .0
		return Math.round((suma / notas.size()) * 100) / 100.0;
	}

	// Ojo con los parámetros de entrada y salida
	static HashMap<String, Integer> precioMinimo(HashMap<String, ArrayList<Integer>> productos) {
		HashMap<String, Integer> res = new HashMap<String, Integer>();
		// Recorro el hashmap
		for (String producto : productos.keySet()) {
			// Añado la clave la misma y el valor aprovecho el min de collections
			res.put(producto, Collections.min(productos.get(producto)));
			// Si no me acuerdo del collections me creo yo la función
			res.put(producto, minimoValor(productos.get(producto)));
		}
		return res;
	}
	// No hace falta pero bueno...
	static int minimoValor(ArrayList<Integer> numeros) {
		int minimo = numeros.get(0);
		for (int numero : numeros) {
			if (numero < minimo) {
				minimo = numero;
			}
		}
		return minimo;
	}
}

Publicado por

Avatar del usuario

Juan Pablo Fuentes

Formador de programación y bases de datos