U всегда может сделать однократную печать с логическим флагом, например first :
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
boolean first = true;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if ((array[i] == array[j]) && (i != j)) {
if(first) {
System.out.print("Duplicate Element:");
first = false;
}
System.out.print(" " + array[j]);
}
}
}
}
Или вы можете создать новый массив, содержащий все дубликаты, и распечатать их впоследствии:
public static void main(String[] args) {
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
int[] duplicates = new int[array.length/2]; //maximum duplicates is half of size the given integer array
int k = 0;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if ((array[i] == array[j]) && (i != j)) {
duplicates[k] = array[i];
k++;
}
}
}
System.out.print("Duplicate Element:");
for(int i = 0; i < k; i++) {
System.out.print(" " + duplicates[i]);
}
}