Ola galera,
como fasso para ordenar uma lista de string por ordem alfabetica?
Ola galera,
como fasso para ordenar uma lista de string por ordem alfabetica?
List lista = new ArrayList();
lista.add("Jair");
lista.add("Maria");
lista.add("João");
Collections.sort(lista);
Certo, mas e se esse list for preechido por objetos (SimpleValue) q contem duas string, um “key” e um “value”, como fasso pra ordenar pelo value?
Duas opções: ou voce faz SimpleValue implementar Comparable ou vc implementa um Comparator. Com a primeia opção vc simplesmente usa Collections.sort(list). Com a segunda vc usa Collections.sort(list, ); No seu caso é melhor usar Comparator pq provavelemente se a sua classe implementar Comparable apenas olhando o value vai comflituar com equals e portanto hashCode. A solução mais simples, portanto é :new SimpleValueComparator()
public SimpleValueComparator implementes Comparator {
public int compare(Object a , Object b){
return ((SimpleValue)a).getValue().compareTo(((SimpleValue)b).getValue());
}
}
Se vc estiver usando Java 5.0 ou superior use a versão generalizada.
Eu já ficaria com a classe TreeMap, da uma olhada no uso dela que ela ja faz tudo pra ti.
Suponho que queira dizer TreeSet. (TreeMap é um mapa)
Essa classe não compara usando um campo especifico da classe.
E ordena todos os itens conforme são adicionados, o que pode ser muito ruim para a performance.
Ele vai precisar de uma mapa SIM, repare na pergunta dele… KEY + VALUE.
De qualquer jeito ele vai ter que ordenar isso, mas antes usar uma classe que ja vai fazendo isso do que reinventar a roda, não concordas ?
Ele vai precisar de uma mapa SIM, repare na pergunta dele… KEY + VALUE.
De qualquer jeito ele vai ter que ordenar isso, mas antes usar uma classe que ja vai fazendo isso do que reinventar a roda, não concordas ?
Não. Eu não sei o que ele pretende fazer com o objecto SimpleValue. Lá porque tem uma variável chamada key e outra chamada value não significa que SimpleValue seja uma Mapa. O problema dele é ordenar SimpleValue e não relacionar key com value.
O objectivo é ordenar SimpleValue pelo conteudo da variável value. Ora, um Map pode até ordenar as chaves , mas não ha nenhum que ordene por value. O TreeMap usa um Comparator assim como TreeSet para ordenar chaves e verificar a igualdade dos objetos. Portanto, concluimos que seja o que for que o nosso amigo quer fazer com SimpleValue e a ordenção de muitos objectos desses pelo conteudo de value, mais cedo ou mais tarde terá que implmentar um Comparator ou implementar Comparable.
Map seria bom se a pergunta fosse “como relaciono meus values com meus keys” ? , Mas a pergunta foi “como ordeno objectos da classe X pelo campo y dela” … (aliás a pergunta foi : como ordeno STrings, quando nem era isso que ele precisava… )
Se você dar uma olhada no:
:arrow: Livro da Katty Sierra - Certificação SUN para programador e Desenvolvedor 1.4
:arrow: Capítulo 7
:arrow: Página 24
:arrow: 4° parágrafo,
vai encontar a seguinte definição…
TreeMap - You can probably guess by now that a TreeMap is a sorted Map. And you already know that this means “sorted by the natural order of the elements.” But like TreeSet, TreeMap lets you pass your own comparison rules in when you construct a TreeMap, to specify how the elements should be compared to one another when they’re being ordered.
Acho que isso justifica a minha resposta 
Se você dar uma olhada no:
:arrow: Livro da Katty Sierra - Certificação SUN para programador e Desenvolvedor 1.4
:arrow: Capítulo 7
:arrow: Página 24
:arrow: 4° parágrafo,
vai encontar a seguinte definição…TreeMap - You can probably guess by now that a TreeMap is a sorted Map. And you already know that this means “sorted by the natural order of the elements.” But like TreeSet, TreeMap lets you pass your own comparison rules in when you construct a TreeMap, to specify how the elements should be compared to one another when they’re being ordered.
Acho que isso justifica a minha resposta
Se vc acha, tudo bem por mim. Mas tente usar TreeMap sem definir um comparador nem implementar comparable.
Se você dar uma olhada no:
:arrow: Livro da Katty Sierra - Certificação SUN para programador e Desenvolvedor 1.4
:arrow: Capítulo 7
:arrow: Página 24
:arrow: 4° parágrafo,
vai encontar a seguinte definição…
É sempre bom recorrer ao livro de bruxarias né ratinho ? 
As vezes é bom matar a cobra e mostrar o pau :metralha: