Problema ao comparar Data com ArrayList<Date> [Resolvido]

5 respostas
R

Salve Galera!!
Estou com umproblema quando tento compara uma data com uma List
A situação é a seguinte.
Eu tenho uma agenda semanal e tenho que gerar suas informações para o ano todo.
Mas existem os feriados que são cadastrados em outra tabela.
Eu recupero as datas dos feriados e o coloco em um arraylist de datas, depois eu no momento que eu vou gerando os eventos eu vou comparando se aquela data esta no list de datas de feriados.

lstFeriadosProjeto  //Meu List<Date>
gc.getTime()  //Minha data atual do tipo Calendar convertida em Date
if(lstFeriadosProjeto.contains(gc.getTime())){...} // e a comparação que estou tentando fazer

Tue Sep 16 00:00:00 GMT-03:00 2008 -> data gravada no ArrayList de feriado
Tue Sep 16 00:00:00 GMT-03:00 2008 - false -> dia que deveria ser feriado

Essa comparação sempre está retornando false.
Alguém pode me dar uma luz, valeu galera.

5 Respostas

xandevieira

nao seria mais facil vc colocar estas datas (feriados) num Map?

bsl.lacerda

Se as referências dos objetos forem diferentes vai sempre dar false, mesmo que o valor das datas sejam iguais.
Uma solução não muito elegante é dar um getTime.toString() e verificar com equals.

Me corrijam se eu estiver errado!!!

abelgomes

faz assim

ArrayList<Date> datas = new ArrayList<Date>();
Calendar data = Calendar.getInstance();
for (Date date : datas) {
			
			if(data.getTime().equals(date))
				System.out.println(date);
		}

aqui funciomou show de bola!!!

R

Grande Bruno! Olha o vacilo que eu estava dando.
As referência eram de objetos diferentes
Agora deu certo, converti os dois valores para String e fiz a comparação.
Valeu!

bsl.lacerda

Bons estudos!!!

Criado 6 de novembro de 2008
Ultima resposta 6 de nov. de 2008
Respostas 5
Participantes 4