1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Java diferencia entre conjunto ordenado y no ordenado HashSet TreeSet CU00924C#
« en: 31 de Enero 2017, 16:59 »
Buenas. Dejo mi solución al ejercicio de la entrega CU00924C del curso Lenguaje de Programación Java Nivel Avanzado I.
Clase Hotel.
Clase TestHotel.
¡Saludos!
Citar
Crea una clase denominada Hotel con los atributos idHotel (int), zona(String), y precio (int). Los valores para zona podrán ser "playa","montaña" o "rural". El precio supondremos que es un dato en euros que podrá tomar valores entre 40 y 150.
Crea una clase con el método main donde se cree un conjunto sin ordenar de 12 hoteles. El programa nos mostrará por consola este conjunto de hoteles y nos preguntará en qué zona queremos el hotel.
Tras ésto el programa creará un conjunto ordenado por precio con los hoteles cuya zona corresponda con la zona elegida y los mostrará por consola.
Clase Hotel.
Código: [Seleccionar]
import java.util.Objects;
public class Hotel implements Comparable<Hotel>{
//Atributos.
private int idHotel;
private String zona; //Playa, montaña o rural.
private int precio;
public Hotel (int idHotel, String zona, int precio) {
this.idHotel=idHotel;
this.zona=zona;
this.precio=precio;
}
@Override
public String toString () {return "Hotel -> ID: "+idHotel+" Zona: "+zona+" Precio: "+precio; }
@Override
public int compareTo (Hotel o) {return this.precio-o.precio;}
@Override
public int hashCode() {return idHotel+zona.hashCode()+precio;}
@Override
public boolean equals(Object obj) {
if (obj == null) {return false;}
if (getClass()!=obj.getClass()) {return false;}
final Hotel other = (Hotel) obj;
if (this.idHotel!=other.idHotel) {return false;}
if (!Objects.equals(this.zona, other.zona)) {return false;}
if (this.precio != other.precio) {return false;}
return true;
}
}
Clase TestHotel.
Código: [Seleccionar]
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.HashSet;
import java.util.Set;
import java.util.Scanner;
import java.util.Random;
public class TestHotel {
public static void main (String [] args) {
Scanner entrada = new Scanner (System.in);
Random rnd = new Random();
int respuesta = 0;
Set<Hotel> listaCompleta = new HashSet <Hotel>();
SortedSet<Hotel> listaPlaya = new TreeSet<Hotel>();
SortedSet<Hotel> listaMontana = new TreeSet<Hotel>();
SortedSet<Hotel> listaRural = new TreeSet<Hotel>();
for (int i=0; i<12; i++) {
int precio = rnd.nextInt(151)+50;
int numR = rnd.nextInt(3);
if (numR==0) {Hotel hotel = new Hotel (i+1, "playa", precio);
listaCompleta.add(hotel);
listaPlaya.add(hotel);
}
else if (numR==1) {Hotel hotel = new Hotel (i+1, "montaña", precio);
listaCompleta.add(hotel);
listaMontana.add(hotel);
}
else {Hotel hotel = new Hotel (i+1, "rural", precio);
listaCompleta.add(hotel);
listaRural.add(hotel);
}
}
System.out.println ("Conjunto de hoteles disponibles: ");
System.out.println(listaCompleta);
System.out.println ("Elige el tipo de zona donde quieres reservar el hotel.");
System.out.println ("(1) Playa. (2) Montaña. (3) Rural.");
respuesta= entrada.nextInt();
switch (respuesta) {
case 1: System.out.println ("Hoteles en el conjunto para la sección playa ordenados por precio: "+listaPlaya); break;
case 2: System.out.println ("Hoteles en el conjunto para la sección montaña ordenados por precio: "+listaMontana); break;
case 3: System.out.println ("Hoteles en el conjunto para la sección rural ordenados por precio: "+listaRural); break;
}
}
}
¡Saludos!