Ajuda numa pesquisa com arraylist

Olá amigos eu tenho o seguinte código.

[code]view plaincopy to clipboardprint?
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;

public class rotina_2 {

public static void main(String[] args) {  
    // faz o caminho até chegar aos arquivos txt.  
    File fileCarregar = new File(  
            "/opt/workspace/restaurante/rotina_restaurante/COLETA.txt");  

    try {  
        FileReader readerColeta = new FileReader(fileCarregar);  
        BufferedReader inputColeta = new BufferedReader(readerColeta);  
        // faz o caminho até chegar aos arquivos txt.  

        String linhaColeta;  
        String linhaCracha;  
        String linhaData;  

        ArrayList<String> coleta = new ArrayList<String>();//aki ele fica com a seguinte linha 99043591 codigo do cracha  
        while ((linhaColeta = inputColeta.readLine()) != null) {//161110 data que ele passou o ponto  
            coleta.add(linhaColeta.substring(18));  
            coleta.add(linhaColeta.substring(2,8));  
            Collections.sort(coleta);  
        }  

        // SimpleDateFormat dataFormatada = new  
        // SimpleDateFormat("dd/MM/yy");  
        // String data = linhaColeta.substring(2,8);  

        fileCarregar = new File(  
                "/opt/workspace/restaurante/rotina_restaurante/cracha.txt");  
        FileReader readerCracha = new FileReader(fileCarregar);  
        BufferedReader inputCracha = new BufferedReader(readerCracha);  

        ArrayList<String> cracha = new ArrayList<String>();//nesse ele vai retornar 00200682    99043591    IGOR SOUZA SOARES  
        while ((linhaCracha = inputCracha.readLine()) != null) {  
            cracha.add(linhaCracha);  
            Collections.sort(cracha);  
        }  
          
        fileCarregar = new File(  
        "/opt/workspace/restaurante/rotina_restaurante/COLETA.txt");  
        FileReader readerData = new FileReader(fileCarregar);  
        BufferedReader inputData = new BufferedReader(readerData);  

        ArrayList<String> data = new ArrayList<String>();//aki ele vai retornar a data 00200682  
        while ((linhaData = inputData.readLine()) != null) {  
            data.add(linhaData.substring(2, 8));  
            Collections.sort(data);  
        }  

        int cont = 0;  
        // StringBuffer pegaData = new StringBuffer();  
        ArrayList<String> resposta = new ArrayList<String>();  
        ArrayList<Integer> contador = new ArrayList<Integer>();  
        ArrayList<String> pegaData = new ArrayList<String>();  
        for (int i = 0; i < cracha.size(); i++) {//aki ele percorre todo o cracha  
            cont = 0;  
            for (int j = 0; j < coleta.size(); j++) {//aki ele percorre toda a coleta  
                if (cracha.get(i).contains(coleta.get(j))) {//nesse if se o numero do cracha tiver armazenado na coleta ele add 1  
                    cont++;                                 //exemplo 00200682  99043591    IGOR SOUZA SOARES 5 ele passou 5 vezes  
                    for (int d = 0; d < data.size(); d++) {//aki esta o problema eu preciso adicionar a data que ele passou  
                        if (coleta.get(j).contains(data.get(d))) {//mas não está funcionando o que estaria de errado  
                            pegaData.add(data.get(d));//teria que ficar assim 00200682  99043591    IGOR SOUZA SOARES 5 021210 031210 041210   
                        }                                                                                       //051210 061210  
                    }  
                }  
            }  
            resposta.add(cracha.get(i));  
            // System.out.println(pegaData);  
            // resposta.add(cracha.get(i));  
            contador.add(cont);  
            pegaData.clear();  
        }  
        fileCarregar = new File(  
                "/opt/workspace/restaurante/rotina_restaurante/resposta.txt");  
        FileOutputStream carregarResposta = new FileOutputStream(  
                fileCarregar);  
        String texto = "";  
        for (int k = 0; k < resposta.size(); k++) {  
            texto = resposta.get(k) + "\t" + contador.get(k) + "\n";  
            carregarResposta.write(texto.getBytes());  
            System.out.println(resposta.get(k) + "\t" + contador.get(k));  

        }  
        inputColeta.close();  
    } catch (IOException ioe) {  
        System.out.println(ioe);  

    }  

}  

[/code]

Alguem poderia me ajudar com esse problema que eu não estou conseguindo resolver?
desde já agradeço.

“La pregunta?”
Se minha bola de cristal funcionou, o problema é que você não está recebendo a data?

[quote=drsmachado]“La pregunta?”
Se minha bola de cristal funcionou, o problema é que você não está recebendo a data?[/quote]

isso mesmo ele nem entra na hora de pesquisar as datas.

Debuga e vê o que ele está recebendo nestas linhas

 while ((linhaData = inputData.readLine()) != null) {    
                data.add(linhaData.substring(2, 8));    
                Collections.sort(data);    
            }    

[quote=drsmachado]Debuga e vê o que ele está recebendo nestas linhas

while ((linhaData = inputData.readLine()) != null) { data.add(linhaData.substring(2, 8)); Collections.sort(data); } [/quote]

nessa linha ele esta carregando legal ele recebe todas as datas exemplo 021210 que seria 02/12/10
o problema está aki for (int i = 0; i < cracha.size(); i++) {//aki ele percorre todo o cracha cont = 0; for (int j = 0; j < coleta.size(); j++) {//aki ele percorre toda a coleta if (cracha.get(i).contains(coleta.get(j))) {//nesse if se o numero do cracha tiver armazenado na coleta ele add 1 cont++; //exemplo 00200682 99043591 IGOR SOUZA SOARES 5 ele passou 5 vezes for (int d = 0; d < data.size(); d++) {//aki esta o problema eu preciso adicionar a data que ele passou if (coleta.get(j).contains(data.get(d))) {//mas não está funcionando o que estaria de errado pegaData.add(data.get(d));//teria que ficar assim 00200682 99043591 IGOR SOUZA SOARES 5 021210 031210 041210 } //051210 061210 } } }
no for que ele compara a data.size ele nem entra nesse for e nao mostra as datas que esse funcionario esteve na empresa.

Sim, pois o ArrayList está com size() = 0. Se fosse maior, ele entraria.

Debuga e confere…

Mas como que no outro for ele entra?
vou testar.

[quote=drsmachado]Sim, pois o ArrayList está com size() = 0. Se fosse maior, ele entraria.

Debuga e confere…[/quote]

Ele esta entrando no for mas quando esta dentro do if ele não encontra nada mas eu sei que tem data iguais
será que meu if esta errado?

Alguem poderia me ajudar para resolver esse topico?