Ajuda em uma comparação...[Resolved]

8 respostas
javakid

Pessoal,

fiz um código para comparar se existe a mesma tabela em dois bancos,
até aí blz…

for (int i = 0; i < tabelas1.size(); i++) { for (int j = 0; j< tabelas2.size(); j++){ if (tabelas1.get(i).getName().equals(tabelas2.get(j).getName())) { System.out.print(tabelas1.get(i).getName() + " "); System.out.println(tabelas2.get(j).getName() + " OK"); } else {} } }

agora como faço para comparar se tem em um banco e nao tem no outro, e mostrar essa tabela ?
só com a diferença não é possivel e to meio travado…

alguem pode ajudar ?

Obrigado

8 Respostas

xandevieira

Sabe trabalhar com Map?

javakid

Para melhorar a teoria,

como posso criar essa condição:

se (existe em um mas não existe no outro) faça

???

:roll:

não… mas vou procurar aki… resolveria esse Map !? :stuck_out_tongue:

RenataFA

Hum... de uma forma bem simples:

for (int i = 0; i &lt; tabelas1.size(); i++) {
    boolean encontrou = false;
    for (int j = 0; j&lt; tabelas2.size() && !encontrou; j++)
        encontrou = (tabelas1.get(i).getName().equals(tabelas2.get(j).getName()));

    if (!encontrou)
        System.out.println(&quot;A tabela &quot; + tabelas1.get(i).getName() + &quot; não foi encontrada!&quot;);
}

Agora, ouça o conselho do amigo, estude sobre HashMap,,, vai melhorar MUITO sua performace, eliminar esss FORs, ficará tudo bem melhor! :wink:

dlrodrigues

Oi voce pode usar um HashMap, estude sobre ele, pois vale muito mais a pena do que reinventar a roda.

javakid
RenataFA:
Hum... de uma forma bem simples:
for (int i = 0; i &lt; tabelas1.size(); i++) {
    boolean encontrou = false;
    for (int j = 0; j&lt; tabelas2.size() && !encontrou; j++)
        encontrou = (tabelas1.get(i).getName().equals(tabelas2.get(j).getName()));

    if (!encontrou)
        System.out.println(&quot;A tabela &quot; + tabelas1.get(i).getName() + &quot; não foi encontrada!&quot;);
}

Agora, ouça o conselho do amigo, estude sobre HashMap,,, vai melhorar MUITO sua performace, eliminar esss FORs, ficará tudo bem melhor! :wink:

Muito obrigado Renata, eu nem imaginaria o booleano ali hehehe
preciso dar um UP na minha lógica de programaçao!

e vou estudar sobre essa API, pra aprender +

Obrigado pessoal!

javakid

Gente, e para um foreach ?
do estilo Java 5

tem como eu adaptar esse mesmo código ( vou usar ArrayList) ???
e tb não estudei HashMap ainda :oops:

for (int i = 0; i < tabelas1.size(); i++) {  
     boolean encontrou = false;  
     for (int j = 0; j< tabelas2.size() && !encontrou; j++)  
         encontrou = (tabelas1.get(i).getName().equals(tabelas2.get(j).getName()));  
   
     if (!encontrou)  
         System.out.println("A tabela " + tabelas1.get(i).getName() + " não foi encontrada!");  
 }
dlrodrigues
for (int i = 0; i &lt; tabelas1.size(); i++) {  
     boolean encontrou = false;  
     for (int j = 0; j&lt; tabelas2.size() && !encontrou; j++)  
         encontrou = (tabelas1.get(i).getName().equals(tabelas2.get(j).getName()));  
   
     if (!encontrou)  
         System.out.println(&quot;A tabela &quot; + tabelas1.get(i).getName() + &quot; não foi encontrada!&quot;);  
 }
tem sim como adaptar teu codigo para foreach ficaria mais ou menos assim:
for (String tableName : tabelas1) {
    boolean encontrou = false;    
    for (String tableName2 : tabela2) {
        if (tableName.equals(tableName2)) {
            encontrou = true;
            break;
        }
    }

    if (!encontrou)
        System.out.println(&quot;A tabela &quot; + tableName + &quot; não foi encontrada!&quot;);
   else
        System.out.println(&quot;A tabela &quot; + tableName + &quot; foi encontrada!&quot;);

}

acho q fica mais ou menos assim.

espero ter ajudado.

javakid
dlrodrigues:
for (String tableName : tabelas1) {
    boolean encontrou = false;    
    for (String tableName2 : tabela2) {
        if (tableName.equals(tableName2)) {
            encontrou = true;
            break;
        }
    }

    if (!encontrou)
        System.out.println(&quot;A tabela &quot; + tableName + &quot; não foi encontrada!&quot;);
   else
        System.out.println(&quot;A tabela &quot; + tableName + &quot; foi encontrada!&quot;);

}

acho q fica mais ou menos assim.

espero ter ajudado.

Ajudou pra caramba é isso mesmo... e eu empacado aki por causa da lógica...
valew Diego! :D

Criado 22 de fevereiro de 2008
Ultima resposta 22 de fev. de 2008
Respostas 8
Participantes 4