| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/03/2005 18:17:17
|
jaoliveira
Debugger
Membro desde: 18/09/2003 13:21:28
Mensagens: 72
Localização: Campo Grande/MS
Offline
|
Galera, seguinte...
Eu tenho uma List de Objetos, e gostaria de saber se existe alguma classe q faz a ordenação desta lista por determinado atributo de cada objeto.
Grato,
|
Atenciosamente,
José Augusto |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/03/2005 18:23:09
|
TedLoprao
Virtual Machine Man
![[Avatar]](/images/avatar/c8604bc33f4c112715031.jpg)
Membro desde: 09/05/2003 00:32:03
Mensagens: 607
Offline
|
Utilize Collections.sort(tuaLista, tuaClasseComparator);
Onde o comparator deve implementar a interface java.util.Comparator...
Como usá-la vc pode ver na api, ali explica qual deve ser o retorno do método compare de acordo com o método de comparação q vc irá utilizar...
Fallow
|
Rodrigo Klein
----------------------------------------------------
Java is the best |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 13:04:30
|
jaoliveira
Debugger
Membro desde: 18/09/2003 13:21:28
Mensagens: 72
Localização: Campo Grande/MS
Offline
|
TedLoprao wrote:Utilize Collections.sort(tuaLista, tuaClasseComparator);
Onde o comparator deve implementar a interface java.util.Comparator...
Como usá-la vc pode ver na api, ali explica qual deve ser o retorno do método compare de acordo com o método de comparação q vc irá utilizar...
Fallow
E se eu quisesse ordenar por ordem decrescente ?!?!?!?
Valews
|
Atenciosamente,
José Augusto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 13:19:27
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
É só inverter o sinal do número retornado pelo método compare, que você deve ter implementado ao criar a classe que implementa Comparator.
Vamos dar um exemplo simples. Rode este programa.
This message was edited 2 times. Last update was at 03/03/2005 13:25:35
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 13:38:29
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
Nao precisa inverter nao. Depois de ordenar:
Collections.reverse(suaLista);
Eh melhor pq vc nao fica replicando comparador
Outra opcao mais pratica e mais complicada: crie um comparador que recebe um comparador no construtor, ele retorna -1 * o que o outro comparador retornaria. Pronto, inverteu.
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 14:32:58
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Seguindo a sugestão do Guilherme,
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/03/2005 19:39:21
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
Vamos melhorar mais ainda esse codigo e utilizar o que ja existe pra gente: Java 5 ahead:
Mas tomem cuidado!
1. Implementou o compareTo eh legal implementar o equals!
2. O compareTo so deve retornar 0 quando os dois objetos sao iguais, isto eh... estamos dizendo que dois objetos sao iguais se o INICIO deles foram iguais.... nao era melhor comparar o nome antes de decidir isso?
3. Atalho do metodo compare quando temos numeros INTEIROS, muito mais compacto:
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2007 06:35:12
|
trashdollar
Entusiasta Java
Membro desde: 07/04/2007 16:25:41
Mensagens: 24
Offline
|
Tudo bem galera,
tenho o seguinte problema:
primeiro gerar todos os números entre 1 e 1000 e ordernar em ordem decrescente utilizando ArrayList.
Veja abaixo:
public class Ordernar implements Comparable<Integer>{
public static void main(String[] args) {
List<Integer> lista = new ArrayList<Integer>();
for(int i = 1; i <= 1000; i++)
lista.add(i);
Collections.sort(lista);
for(int i = 0; i < 1000; i++)
System.out.println(lista.get(i));
}
public int compareTo(Integer x) {
return 0;
//como vou fazer a implementação aqui para decrescente
// já que desejo usar Comparable?
}
}
agradeço desde já.
valeu
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2008 09:20:41
|
converge
Thread.start()
![[Avatar]](/images/avatar/c6996dd5e0f7a6af62c2a503ab1961cc.png)
Membro desde: 13/02/2008 18:50:22
Mensagens: 31
Offline
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2008 18:34:33
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
converge wrote:...
Desculpe te dizer, mas este tópico é de 2005.
E você chegou mais de um ano atrasado para responder o cara aí em cima (que ao invés de criar o próprio tópico foi pegar carona em um tópico que já estava morto a dois anos).
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2008 18:43:44
|
converge
Thread.start()
![[Avatar]](/images/avatar/c6996dd5e0f7a6af62c2a503ab1961cc.png)
Membro desde: 13/02/2008 18:50:22
Mensagens: 31
Offline
|
e o bambu ?
apenas fiz uma contribuição.
[no flames pls!]
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2008 19:03:05
|
victorwss
JWizard
![[Avatar]](/images/avatar/4ab232445f9b21b65dfdf6ea5f27f704.png)
Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline
|
converge wrote:e o bambu ?
Bela resposta!
This message was edited 1 time. Last update was at 09/11/2008 19:03:53
|
Victor Williams Stafusa da Silva
Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.
Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.
Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.
É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).
Se você escreve "concerteza", "concerteza" você andou matando aulas de português. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/11/2008 23:54:09
|
hugov
JavaEvangelist
Membro desde: 30/08/2004 14:14:23
Mensagens: 357
Offline
|
Dá uma olhada neste post, pois existe um exemplo lá
http://emdia.wordpress.com/2008/11/01/ordenando-uma-lista-de-objeto/
|
Vitor Hugo
Analista Desenvolvedor Java
WebLog : http://emdia.wordpress.com/
Skype : hugov_br
|
|
|
 |
|
|