//duynotes.blogspot.com class FirstUnique { private LinkedHashSet<Integer> set = new LinkedHashSet<>(); private HashMap<Integer,Integer> map = new HashMap<>(); public FirstUnique(int[] nums) { for (int i:nums){ add(i); } } public int showFirstUnique() { if (set.size()>0){ for (int i:set){ return i; } } return -1; } public void add(int value) { if (map.containsKey(value)){ set.remove(value); } else{ map.put(value,value); set.add(value); } } } /** * Your FirstUnique object will be instantiated and called as such: * FirstUnique obj = new FirstUnique(nums); * int param_1 = obj.showFirstUnique(); * obj.add(value); */