Integers: Find the only unique number in an array

Problem statements:

Soltuions:

1. Using HashSet to filter unique element

    /**
    * Find unique element in the array using HashSet.
    * TC: O(n)
    * SC: O(n)
    *
    * @param nums
    * @return
    */
    public static int findSingleNumberHashSet(int[] nums) {
        final Set<Integer> numSet = new HashSet<>();
        for (int i = 0; i < nums.length; i++) {
            int t = nums[i];
            if (numSet.contains(t)) {
                numSet.remove(t);
            } else {
                numSet.add(t);
            }
        }
        if (numSet.size() == 1) {
            return numSet.iterator().next();
        } else {
            return 0;
        }
    }

2. Using Bitwise XOR operator

    /**
      * Find Unique number in an array using Bitwise XOR operator.
      * TC: O(n)
      * SC: O(1)
      *
      * @param nums
      * @return
      */
      public static int findSingleNumberBitwiseXor(int[] nums) {
          int res = 0;
          for (int i = 0; i < nums.length; i++) {
              res = res ^ nums[i];
          }
          return res;
      }

------ End ------