static void imprimirMapStrArray(Map<String, ArrayList<Coche>> map) { System.out.println("\t╓─────────────┬──────────┬────────┬─────────────┬──────────╖"); System.out.println("\t║ Marca │ Modelo │ CC │ NºCilindros │ CVFiscal ║"); System.out.println("\t╙─────────────┴──────────┴────────┴─────────────┴──────────╜"); for (Map.Entry<String, ArrayList<Coche>> marcaCoche : map.entrySet()) { System.out.println("Marca de coche: [" + marcaCoche.getKey() + "]"); System.out.println("\t╓─────────────┬──────────┬────────┬─────────────┬──────────╖"); for (Coche coche : marcaCoche.getValue()) { System.out.println( "\t╠► " + String.format("%1$-10s", coche.getMarca()) + " │ " + String.format("%1$-8s", coche.getModelo()) + " │ " + coche.getCilindrada() + "cc" + " │ " + coche.getCilindres() + " Cilindros" + " │ " + String.format("%1$-5s", String.format("%.2f", coche.potenciaFiscal())) + "CF ║"); } System.out.println("\t╙─────────────┴──────────┴────────┴─────────────┴──────────╜"); } }
// Parametros // --> Map<String, Coche> mapCoches = El mapa que contiene los pares a extraer en array. // // Retorno // Map<String, ArrayList<Coche>>: String con las marcas de los coches. ArrayList de Coche public static Map<String, ArrayList<Coche>> mapCochesPorMarca(Map<String, Coche> mapDeCoches) { // SI el mapa que introducimos está vacio, devuelve null. if (!mapDeCoches.isEmpty()) { // Se crea el ArrayList<String> temporal para introducir las marcas. ArrayList<String> arrayMarca = new ArrayList<String>(); // Se recorre el mapa para introducir en nuestro ArrayList<String> las marcas de los coches for (Map.Entry<String, Coche> coche : mapDeCoches.entrySet()) { Coche marca = coche.getValue(); // Si el ArrayList<String> ya contiene una marca no se añade. if (!arrayMarca.contains(marca.getMarca())) { arrayMarca.add(marca.getMarca()); } } // Se crea el mapa a devolver. Map<String, ArrayList<Coche>> Map<String, ArrayList<Coche>> mapDeCochesOrdPorMarca = new TreeMap<String, ArrayList<Coche>>(); // Se recorre el array de marcas para introducirlo como Key en nuestro mapa. for (int i = 0; i < arrayMarca.size(); i++) { String marca = arrayMarca.get(i); // Se crea el ArrayList que será el Value de nuestro mapa. ArrayList<Coche> arrayCoche = new ArrayList<Coche>(); // Recorremos el mapa con los coches, para buscar e introducir los coches de una marca. for (Map.Entry<String, Coche> coche : mapDeCoches.entrySet()) { // Se filtra los coches de una marca. if (coche.getValue().getMarca() == marca) { // Los coches de una marca encontrada se añaden en el array de nuestro mapa. arrayCoche.add(coche.getValue()); } } // Una vez con todos los coches de una marca, se añade la marca y los coches en el Mapa a // devolver. mapDeCochesOrdPorMarca.put(marca, arrayCoche); } // Una vez completo el Mapa se devuelve. // Map<String, ArrayList<Coche>> return mapDeCochesOrdPorMarca; } else { return null; } }
static void imprimirArray(ArrayList<Coche> array) { System.out.println("\t┌───────────┬──────────┬─────────┬───┬──────┐"); for (Coche coche : array) { System.out.println( "\t│" + String.format("%1$-10s", coche.getMarca()) + " │ " + String.format("%1$-8s", coche.getModelo()) + " │ " + coche.getCilindrada() + " cc" + " │ " + coche.getCilindres() + " │ " + String.format("%1$-5s", String.format("%.2f", coche.potenciaFiscal())) + "│"); } System.out.println("\t└───────────┴──────────┴─────────┴───┴──────┘"); }