Ordenação, Polimorfismo, Sobrecarga de Operador, templates e ufaaa! =)

4 respostas
Lelis_el_Quatilas

Olá pessoal!

Estava viajando aqui em pensamentos e fiquei com a seguinte dúvida: em Java quando crio um objeto, vamos supor que ele é composto por uma String e um int, instancio um monte desses objetos e depois coloco em uma estrutura pronta, tipo a JTree, onde já vão inserindo ordenados, num é isso?! Bem se não for eu vou inserir em uma estrutura que insere ordenado. Mas aí vem a minha dúvida, vai ser ordenado de acordo com o que?! A String ou o int?!

Em C++ é fácil resolver o problema, basta sobrecarregar os operadores de comparação (<, >, >=, <= e ==) e criar uma árvore do tipo :

MinhaArvoreCPlusPlus<TipoQueEuQuiser> nomeArvore;

Em Java eu posso colocar na JTree por causa do polimorfismo (isso em java 2, agora no Tiger temos mais opções!!!) mas e as comparações, como ficam? Tem alguma solução estupidamente simples que eu vá ficar :oops: ?

Eu teria que implementar os meus próprios métodos de ordenação e estrutura de dados?

Valeu pessoal!

4 Respostas

T

É igualzinho ao C++, só que em vez de sobrecarregar meia dúzia de operadores, você passa um objeto Comparator, ou então implementa Comparable. Por exemplo (usando Comparator):

class MyClass {
    public int x;
    public String y;
}
SortedSet<MyClass> ss = new TreeSet<MyClass> (new Comparator<MyClass>() {
    public int 	compare(MyClass o1, MyClass o2) {
       ... acho que você  entendeu
    }
});

EDIT - não vi que você estava se referindo explicitamente a uma JTree e não a um TreeSet, mas um conjunto que sempre se conserva ordenado é o TreeSet. Um JTree contém um TreeModel e árvores por si sós não ficam ordenadas. (O exemplo do C++ que você deu é para um < map > ou para um < set > que são implementados com árvores binárias red-black (ou rubro-negras conforme os professores).

Lelis_el_Quatilas

Entendi sim!
Muito obrigado Thingol!
Valeu!!!

pcalcado

Que título louco :stuck_out_tongue:

Lelis_el_Quatilas

Shoes, a idéia era chamar atenção e colocar todas as palavras-chaves…
:smiley:
Abraço pra você cara!

Criado 24 de maio de 2005
Ultima resposta 24 de mai. de 2005
Respostas 4
Participantes 3