Ordenando Datas

1 resposta
M

Dessa forma as datas não eram ordenadas.

public static class DataAulaComparator implements Comparator<Teste> {

		@Override
		public int compare(Teste o1, Teste o2) {
			
			return  o1.getData().compareTo(o2.getData());
			
		}
		
	}

Alguém saberia me responder o que estava de errado?

Eu obtive a ordenação convertendo as data em Strings como mostrado aqui.

public static class DataAulaComparator implements Comparator<Teste> {

		@Override
		public int compare(Teste o1, Teste o2) {
			// TODO Auto-generated method stub
			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmdd");
			String d1 = dateFormat.format(o1.getData());
			String d2 = dateFormat.format(o2.getData());
			
			return  d1.compareTo(d2);
			
		}
		
	}

Antes

[03/04/2008, 13/02/2008, 14/02/2008, 20/02/2008, 21/02/2008, 27/02/2008, 28/02/2008, 05/03/2008, 06/03/2008, 12/03/2008, 13/03/2008, 19/03/2008, 26/03/2008, 27/03/2008, 09/04/2008, 10/04/2008, 16/04/2008, 17/04/2008, 23/04/2008, 24/04/2008, 30/04/2008, 02/04/2008]

Depois

[13/02/2008, 14/02/2008, 20/02/2008, 21/02/2008, 27/02/2008, 28/02/2008, 05/03/2008, 06/03/2008, 12/03/2008, 13/03/2008, 19/03/2008, 26/03/2008, 27/03/2008, 02/04/2008, 03/04/2008, 09/04/2008, 10/04/2008, 16/04/2008, 17/04/2008, 23/04/2008, 24/04/2008, 30/04/2008]

Fica aqui o registro da pessoa que martelou bastante.

1 Resposta

von.juliano
Olha essa soluação:
public static class DataAulaComparator implements Comparator<Teste> {

	@Override
	public int compare(Teste o1, Teste o2) {
		boolean after = o1.getData().after(o2.getData());
		return after ? 1 : 0;
	}
}
Assim você não precisa converter a data em String. E se quiser ordem decrescente, é só usar o método before().

Blz? Flw! :thumbup:

Criado 21 de agosto de 2008
Ultima resposta 21 de ago. de 2008
Respostas 1
Participantes 2