Problem Statement :
Is it possible to remove the duplicates in an array of integers in a single iteration for an unsorted array
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) {
int[] array = new int[] { 4, 2, 5, 8, 9, 90, 5, 4, 2343, 4, 3434, 4343,
4, 2, 1, 2, 4, 5, 4, 5, 644, 65656, 654, 6 };
Set<Integer> set = new HashSet<Integer>();
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int _int : array) {
boolean exists = set.add(_int);
if (!exists) {
Integer existing = map.get(_int);
map.put(_int, existing == null ? 2 : (existing = existing + 1));
}
}
System.out.println(set);
System.out.println(map);
}
}
Output[1, 2, 654, 4, 5, 6, 3434, 2343, 8, 9, 644, 65656, 4343, 90]
{2=3, 4=6, 5=4}