Comparação entre os nomes de aquivos de uma pasta com nome(String) que listo no banco

Pessoal, eu pesquiso dentro de alguns diretorios os arquivos novos na pasta para importar para o banco.No banco eu guardo o nome do arquivo que ja importei.Depois preciso comparar o nome dos arquivos pra saber se ja foi importado,se sim ,msg de arquivo já importado,se não, processa importação do arquivo,mas não to achando um jeito de conseguir comparar o nome dos arquivos que pesquiso com minha lista de nome que vem do banco.
Vou postar meu código pra vcs verem como eu to fazendo,sei que deve ser mais simples do que penso,mas ainda sou novo em java e em desenvolvimento.

public class BuscaBilhetes {
    static String nomeArquivo;
    String narquivo;
    List<BilhetesImportados> bilhetes;


    public void buscaBilhetes(String diretorioBase) {
        File diretorio = new File(diretorioBase);
        if(!diretorio.exists())
            throw new IllegalArgumentException("Diretorio inexistente!");
        if(!diretorio.isDirectory())
            throw new IllegalArgumentException("Não é diretorio!");
        processaDiretorio(diretorio);
    }

       public void  processaDiretorio(File diretorio) {
              File[] arquivos = diretorio.listFiles();
                  for(int i=0;i<arquivos.length;i++){
                        File arquivo = arquivos[i];
                            if(arquivo.isDirectory()){
                                processaDiretorio(arquivo);
                   
                   }else{
                                processaArquivo(arquivo);
                   }
                }
             }
         
   
    public void  processaArquivo(File arquivo) {
   
    }

    
    public void compara() {
        Configurações c = new Configurações();
        File f = new File("buscaarquivos.properties");
        c.lerPropriedade(f);
        String diretorioBase = c.getDiretorioBase();
        BuscaBilhetes bb = new BuscaBilhetes();
        bb.buscaBilhetes(diretorioBase);
        
        
                
    }

    public static void main(String[] args) throws SQLException {
        BuscaBilhetes b = new BuscaBilhetes();
        b.compara();
        
        
        
    }
}

e aqui meu select no banco:

public List><BilhetesImportados> selectBilhetesImportados(){
            List<BilhetesImportados> bilhetes = new ArrayList();
            String selectBilhetesImportados = "select * from garquivosbilimportados ";
            ResultSet rs;
            try{
                pstm = acbd.conectar().prepareStatement(selectBilhetesImportados);
                //pstm.setString(1, nomeBilhete);
                rs = pstm.executeQuery();
                BilhetesImportados bil;
                while(rs.next()){
                    bil = new BilhetesImportados();
                    bil.setIdArquivoBilhetes( rs.getInt("idarquivobilhete"));
                    bil.setNomeArquivoBil( rs.getString("nomearquivobil"));
                    bilhetes.add(bil);

              }
                

            }catch(SQLException e){
                e.printStackTrace();
            }
            return bilhetes;


          }

aqui nao tem o metodo que faz a importação do arquivo no banco pq não consigo fazer a comparação, então não ia adiantar muito.
Galera quem puder me ajudar, valeu mesmo!

Caro leo,

Seria importante vc terminar de escrever o código do método processaArquivo();

Quando vc identifica que é um diretório, vc segue para o diretório lido e o percorre novamente.

Quando é arquivo, vc não faz nada.

Nesse momento vc já poderia fazer a comparação, de forma a não ter que percorrer novamente o array para a leitura em si.

Não entendi porque vc está lendo um arquivo de propriedades, visto que não vi o código do método mencionado. Creio que guardou os nomes dos arquivos e diretórios lidos para persistir ao final.

Em suma, ao ler cada item da sua lista que vem do banco, vc compara com a propriedade lida (desde que seja o nome do arquivo).

Veja se melhora alguma coisa.

Saudações,

André Monteiro
Docente Instituto INFNET