lunes, 31 de diciembre de 2012

Utilizar TreeSet en java, colecciones ordenadas, comparación


En esta entrada utilizaremos en TreeSet (colecciones ordenadas) en Java. He creado una clase Persona con las variables (Nombre, dni y peso) y otra clase llamada ComparadorPeso. El objetivo del código es que el TreeSet nos ordene a dos personas que crearemos por el peso. Ejemplo de ejercicio con TreeSet código java.

Clase ComparadorPeso (implementa Comparator, por lo que en la clase hacemos el método compare. Compararemos los pesos de dos objetos, las dos personas que crearemos en el main, y dependiendo de como sea, devolverá un 1, un -1 o un 0):
import java.util.Comparator;
public class ComparadorPeso implements Comparator {
//Codigo por www.DesarrollarAplicaciones.com
public int compare(Object o1, Object o2){
Persona p1=(Persona)o1;
Persona p2=(Persona)o2;
int peso1=p1.getPeso();
int peso2=p2.getPeso();
if(peso1 > peso2){
return 1;
}
else{
if(peso1 < peso2){
return -1;
}
else{
return 0;
}
}
}
}

Clase Persona (implementa Comparable. En la parte del main daremos valor a las variables, y crearemos el TreeSet para que nos ordene a las dos personas por peso):
import java.util.TreeSet;
public class Persona implements Comparable{
//Codigo por www.DesarrollarAplicaciones.com
private String nombre;
private String dni;
private int peso;
public Persona(){
}
public Persona(String nombre, String dni, int peso){
this.nombre=nombre;
this.dni=dni;
this.peso=peso;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDni() {
return dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public int getPeso() {
return peso;
}
public void setPeso(int peso) {
this.peso = peso;
}
@Override
public int compareTo(Object arg0) {
// TODO Auto-generated method stub
return 0;
}
public String toString(){
String s="Nombre: "+nombre+" DNI: "+dni+" Peso: "+peso+" ";
return s;
}
//main desde donde probaremos nuestro código
public static void main(String[] args) {
Persona p1=new Persona();
Persona p2=new Persona();
p1.setNombre("Maria");
p1.setDni("88888888-N");
p1.setPeso(80);
p2.setNombre("Alberto");
p2.setDni("77777777-N");
p2.setPeso(92);
ComparadorPeso pesos=new ComparadorPeso();
TreeSet ts=new TreeSet(pesos);
ts.add(p1);
ts.add(p2);
System.out.println(ts.toString());
}
}

No hay comentarios:

Publicar un comentario