ordenação de ArrayList de objetos

5 respostas
L

Olá pessoal!

Estou com o seguinte problema:
Tenho um ArrayList de objetos, esses objetos tem um atributo data do tipo String.
Como faço para ordená-los? De modo que os objetos sejam alocados dentro do ArrayList de forma cronológica crescente.

Obrigado!

5 Respostas

Djonatah
  1. A classe dos objetos que vão estar contidos no ArrayList precisa implementar o método compareTo da interface Comparable
  2. Você cria uma classe implementando a interface Comparator, e através dela você realiza a ordenação como quiser.

Após isso, dê uma olhada na classe Collections, especialmente o método sort() (método de ordenação) e seus variantes.

[Editado: tinha dado uma instrucao errada:D]

ivandasilva

Você também pode implementar a interface Comparable como alternativa a Comparator.

renamed
public static void main(String[] args){
		List<String> nomes = new ArrayList<String>();
		
		nomes.add("Zilda");
		nomes.add("Fulano");
		nomes.add("Beutrano");
		nomes.add("Ela");
		nomes.add("Ele");
		
		Collections.sort(nomes, new Comparator<String>(){

			@Override
			public int compare(String arg0, String arg1) {
				//Aqui você vai comparar, é esse método que o método sort vai chamar
				//quando ele quiser ordenar.
				//Essa função deve retornar negativo se o primeiro menor q o segundo, positivo se
				//segundo maior que primeiro e 0 se forem iguais. Como tenho uma lista
				//de string, esse método já está implementado na própria classe string,
				//mas se vc tiver um objeto próprio, criado por vc, terá de implementar
				//esse método.
				
				return arg0.compareTo(arg1);
			}
			
		});
		
		for(int i = 0; i < nomes.size(); i++){
			System.out.println(nomes.get(i));
		}
	}
ViniGodoy

Dá uma lida. Mais completo que isso, impossível:
http://www.guj.com.br/posts/list/45985.java#241201

rafaelpaz

GustavoDoT:
Olá pessoal!

Estou com o seguinte problema:
Tenho um ArrayList de objetos, esses objetos tem um atributo data do tipo String.
Como faço para ordená-los? De modo que os objetos sejam alocados dentro do ArrayList de forma cronológica crescente.

Obrigado!

Cara, porque tu não dá uma olhada no site da caelum e baixa a postilinha web que eles estão disponibilizando de graça. La tem um capítulo, acho que de Collections que explica como ordenar em Collections, Muito bacana a apostila…

Criado 4 de dezembro de 2009
Ultima resposta 4 de dez. de 2009
Respostas 5
Participantes 6