Ordenar vector de objetos..

coca627
15 de Diciembre del 2004
Este es mi primer mensaje en este foro a si que un saludo a todo el mundo. Estoy haciendo mis primeros programas en java y aunque voy progresando me saltan varias dudas.. en especial un problemilla que tengo y que no encuentro solucion, a ver si alguien me puede ayudar.

Tengo un vector de la clase Vector compuesto por objetos de 2 clases las cuales heredan de otra. Las clases tienen el atributo comun "nombre" el cual es un String.

Como puedeo obtener un vector ordenado de objetos por el nombre de los objetos?

Gracias de antemano y un saludo.

Josh Luis
15 de Diciembre del 2004
Pudieras implementar la interface Comparable:
e1.compareTo(e2)
y utilizar java.util.Collections.sort(List)

suerte

Jes?eyes
15 de Diciembre del 2004
Prueba con esto:

import java.util.*;

class A implements Comparable<A> {
private String nombre;
public A(String nombre) {
this.nombre = nombre;
}
public int compareTo(A o) {
return this.nombre.compareTo(o.nombre);
}
public String toString() {
return this.nombre;
}
}
class B extends A {
public B(String nombre) {
super(nombre);
}
}

public class Test {
public static void main(String[] s) {
List<A> lista = new ArrayList<A>();
lista.add(new A("ged"));
lista.add(new B("tehanu"));
lista.add(new A("arha"));
System.out.printf("Antes de ordenar: %s%n",lista);
Collections.sort(lista);
System.out.printf("Después de ordenar: %s%n",lista);
}
}

Espero que te sirva de algo,

Jesús