Ordenar Objeto por um atributo [RESOLVIDO]

5 respostas
Renan_Amaro

eu tenho 5 classes Publicacao, Livro, Revista, Dvd e Fita todas as classes são filhas de Publicacao, na minha classe tem um atributo chamado titulo
que é uma String eu tenho q ordenar um vetor de Publicacao q eu criei pelo atributo titulo eu já procurei aqui no forum mas naum achei uma resposta se alguem puder me ajudar eu agradeço obrigado !!!!!!!!!!!!

Exemplo !!!!!!

Publicacao []publicacao = new Publicacao[3] 

   publicacao[0] = new Revista(seria o codigo 1, seria o titulo " Veja");
   publicacao[1] = new Livro(seria o codigo 2, seria o titulo " Java Como Programar");
   publicacao[2] = new Dvd(seria o codigo 3, seria o titulo "A Espera de um Milagre");
   publicacao[3] = new Fita(seria o codigo 4, seria o titulo "Superman");
// teria que ordenar pelo titulo  e mostrar ordenado

5 Respostas

blackfalcon

Acredito que deva haver algum metodo para isso…

se nao houver, acho que tem que usar um length 0 pra descobrir a primeira letra e mostrar de acordo com a tabela ASCII… ( falei besteira hahaha)

abraços

peczenyj

Defina um método ‘compare’

http://guj.com.br/java.tutorial.artigo.109.1.guj

Renan_Amaro

blackfalcon:
Acredito que deva haver algum metodo para isso…

se nao houver, acho que tem que usar um length 0 pra descobrir a primeira letra e mostrar de acordo com a tabela ASCII… ( falei besteira hahaha)

abraços

método tem eh o compareTo() e se eu naum me engano eu tenho q implementar a interface Comparable mas naum consigo fazer a lógica para comparar a String se fosse por um int eu até conseguiria mas como eh String naum to conseguindo, mas obrigado pela força se alguém tiver mais alguma sugestão eu agradeço Obrigado !!!

peczenyj

String é um Comparable:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

Ou seja, vc pode fazer algo como

public class Publicacao implements Comparable{ ... public int compareTo(object p){ /* verifique se p é instanceof de Publicacao... */ return this.titulo.compareTo(((Publicacao) p).getTitulo()); } }

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html

Ai se vc esta usando java 1.5 ou superior, use Generics… :wink:

Renan_Amaro

peczenyj:
String é um Comparable:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html

Ou seja, vc pode fazer algo como

public class Publicacao implements Comparable{ ... public int compareTo(object p){ /* verifique se p é instanceof de Publicacao... */ return this.titulo.compareTo(((Publicacao) p).getTitulo()); } }

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html

Ai se vc esta usando java 1.5 ou superior, use Generics… ;-)

Obrigado deu certo consegui o q eu queria vlw !!! :wink:

Criado 22 de maio de 2008
Ultima resposta 22 de mai. de 2008
Respostas 5
Participantes 3