Ordenar list por vários campos  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Oi pessoal,

Tem como eu ordenar um List por mais de um campo? Dos exemplos que vi o pessoal ordena somente por um campo.
Se alguém souber e puder postar um exemplo ficarei agradecido.

Valeu.

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
Edifran
JavaChild
[Avatar]

Membro desde: 19/06/2008 21:24:53
Mensagens: 110
Localização: Piracicaba
Offline

Kra, não sei se entendi direito, mas são campos existentes em banco de dados?
Seria um select! alguma coisa do tipo?
Caso seja isso, acredito que não de pra orndenar por mais campos.
Isso justifica vc ter visto apenas exemplos ordenados por um campo.

flw

"Tudo que for capaz de pensar, é também capaz de fazer"
bobmoe
GUJ Ranger
[Avatar]

Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline

http://www.java2s.com/Tutorial/Java/0140__Collections/SortingaCollectioncontaininguserdefinedObjects.htm

BOB - Roberto Nogueira - bobmoe.blogspot.com
[WWW] [MSN]
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Edifran wrote:Kra, não sei se entendi direito, mas são campos existentes em banco de dados?
Seria um select! alguma coisa do tipo?
Caso seja isso, acredito que não de pra orndenar por mais campos.
Isso justifica vc ter visto apenas exemplos ordenados por um campo.
flw


Não é select no banco, é list do java.




Entrei no link, mas no exemplo mosta ordenando somente por um campo.

Eu quero algo do tipo:
Imagem um List<Pessoa> onde Pessoa tem os campos (nome, dataNascimento, sexo).
Quero que o usuário escolha como ele quer ordenar o list, por exemplo: 1º sexo, 2º dataNascimento, 3º nome.






Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
bobmoe
GUJ Ranger
[Avatar]

Membro desde: 11/07/2006 20:45:48
Mensagens: 806
Localização: Sampa
Offline

maurenginaldo wrote:
Entrei no link, mas no exemplo mosta ordenando somente por um campo.

Eu quero algo do tipo:
Imagem um List<Pessoa> onde Pessoa tem os campos (nome, dataNascimento, sexo).
Quero que o usuário escolha como ele quer ordenar o list, por exemplo: 1º sexo, 2º dataNascimento, 3º nome.



analise novamente o link q te passei :



segundo a api o método compareTo da classe String:

the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.


então no código acima se e apenas se o surname for igual ai ele avalia o firstname, caso contrário nem precisa.

BOB - Roberto Nogueira - bobmoe.blogspot.com
[WWW] [MSN]
maurenginaldo
JavaEvangelist
[Avatar]

Membro desde: 26/04/2006 18:16:41
Mensagens: 435
Localização: Belo Horizonte-MG
Offline

Hummmm... blz, vou verificar

Mauren Ginaldo Souza
______________________________________________________________
"Quis Custodie Ipsos Custodes." Quem guardará os guardiões.
[Email] [WWW] [MSN]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

maurenginaldo wrote:Oi pessoal,

Tem como eu ordenar um List por mais de um campo? Dos exemplos que vi o pessoal ordena somente por um campo.
Se alguém souber e puder postar um exemplo ficarei agradecido.


Use Collections.sort e Comparator.

Vc tem que escolher a ordem do campos. Ou seja, se vc quer ordenar por X, Y , Z ou por X, Z , Y. Não é equivalente.
O comparator faz comparações sucessivas dos campos até determinar se os elementos são menor, igual ou maior.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team