E ai pessoal…
Estou precisando ordenar um ArrayList em ordem alfabética.
Este ArrayList armazena objetos que possuem o atributo nome, e preciso ordenar por este atributo.
Alguem sabe como fazer?
Agradeço pela ajuda!
E ai pessoal…
Estou precisando ordenar um ArrayList em ordem alfabética.
Este ArrayList armazena objetos que possuem o atributo nome, e preciso ordenar por este atributo.
Alguem sabe como fazer?
Agradeço pela ajuda!
Crie um compator (java.util.Comparator) que compare Strings. Se nao me engano, a ordenacao padrao de strings eh por ordem alfabetica. Entao, use Collections.sort().
Pessoal, fiz o exemplo ai…
Pra quem precisar agora é só adaptar…
Abraços!
import java.util.*;
class Pessoa implements Comparable {
private String primeiroNome, ultimoNome;
public Pessoa(String primeiroNome, String ultimoNome) {
this.primeiroNome = primeiroNome;
this.ultimoNome = ultimoNome;
}
public String primeiroNome() {
return primeiroNome;
}
public String ultimoNome() {
return ultimoNome;
}
public int compareTo(Object o) {
Pessoa n = (Pessoa)o;
int ultimaComparacao = ultimoNome.compareTo(n.ultimoNome);
return (ultimaComparacao != 0 ? ultimaComparacao : primeiroNome.compareTo(n.primeiroNome));
}
}
public class OrdenacaoArrayList {
static final Comparator NOME = new Comparator() {
public int compare(Object o1, Object o2) {
Pessoa n1 = (Pessoa) o1;
Pessoa n2 = (Pessoa) o2;
int primeiraComparacao = n1.primeiroNome().compareTo(n2.primeiroNome());
return (primeiraComparacao != 0 ? primeiraComparacao : n1.ultimoNome().compareTo(n2.ultimoNome()));
}
};
public static void main(String args[]) {
ArrayList dados = new ArrayList();
Pessoa n[] = { new Pessoa(“Marcos”, “Honório dos Santos”),
new Pessoa(“José”, “Tirabassi Júnior”),
new Pessoa(“Juliana”, “das Graças dos Santos”),
new Pessoa(“Honorina”, “das Graças Santos”)
};
dados.add(n[0]);
dados.add(n[1]);
dados.add(n[2]);
dados.add(n[3]);
Collections.sort(dados, NOME);
Iterator itTeste = dados.iterator();
while (itTeste.hasNext()) {
Pessoa testeNome = (Pessoa) itTeste.next();
System.out.println("Nome : " + testeNome.primeiroNome());
}
}
}