Вы делаете слишком много сравнений, плюс вы без необходимости сравниваете каждый элемент с самим собой.То, что вы хотите, это:
for(int i=0; i<array1.size(); i++){
for(int j=i + 1; j<array1.size(); j++){
if(arr[i] != arr[j]){
..do stuff..
}
}
}
(Предполагается, что ваша идея равенства коммутативна , что обычно равенство.)
Если имеется N элементовв вашем массиве ваш исходный фрагмент будет выполнять N ^ 2 сравнений, тогда как мой фрагмент выполняет N (N-1) / 2 сравнений.