In questi giorni mi son messo a lavoro cercando di correggere gli errori del metodo PostoErrato, per far questo mi sono avvalso di un terzo array ( c ) che mi tiene conto dell'indice in cui le posizioni dei numeri sono corrette, ossia quando a[i]==b[j]

Vi riporto il corpo dei metodi:

codice:
 int esatto=0;

        	

        	for (int i=0; i<a.length; i++){

        		if (a[i]==b[i]){

        			c[i]=1;

        			esatto++;}

        	 }

            








            

			int errato = 0;



			for(int i=0; i<a.length; i++){

				if (c[i]==1) { continue;}

				for(int j=0; j<b.length; j++){

					if (c[j]==1){continue;} {

					if (a[i]==b[j]) 

						errato++;

					    }

				}

	           }
In questo modo riesco a risolvere problemi del tipo:
a={1,3,0,3,2}
b={2,3,3,1,2}

Di fatti ho come output:
Posizioni corrette:2
Posizioni errate:2

Il problema si crea quando ho array del tipo:
a={1,3,0,3,2}
b={2,0,3,1,2}
O viceversa; in questo caso come output ho 4 posizioni errate invece che 3, poiché l'oggetto presente in b[2] me lo conta due volte.

Come posso risolvere questo problema? Mi potreste dare qualche consiglio?

Ringrazio anticipatamente tutto coloro che mi risponderanno