comefrom: <awangdev>Single Number III_1.java
code: public List<Integer> singleNumberIII(int[] A) {
          if (A == null || A.length == 0) {
              return null;
          }
          List<Integer> rst = new ArrayList<Integer>();
          int xor = 0;
          for (int i = 0; i < A.length; i++) {
              xor ^= A[i];
          }
          int bitOnePos = 0;
          for (int i = 0; i < 32; i++) {
              if ((xor >> i & 1) == 1) {
                  bitOnePos = i;
              }
          }
          int rstA = 0;
          int rstB = 0;
          for (int i = 0; i < A.length; i++) {
              if ((A[i] >> bitOnePos & 1) == 1) {
                  rstA ^= A[i];
              } else {
                  rstB ^= A[i];
              }
          }
          rst.add(rstA);
          rst.add(rstB);
          return rst;
      }
masked: public List < Integer > var_1 ( int [ ] var_2 ) {
    if ( var_2 == null || var_2 . length == 0 ) {
      return null ;
    }
    List < Integer > var_8 = new ArrayList < Integer > ( ) ;
    int var_9 = 0 ;
    for ( int var_10 = 0 ;
    var_10 < var_2 . length ;
    var_10 ++ ) {
      var_9 ^= var_2 [ var_10 ] ;
    }
    int var_11 = 0 ;
    for ( int var_10 = 0 ;
    var_10 < 32 ;
    var_10 ++ ) {
      if ( ( var_9 >> var_10 & 1 ) == 1 ) {
        var_11 = var_10 ;
      }
    }
    int var_14 = 0 ;
    int var_15 = 0 ;
    for ( int var_10 = 0 ;
    var_10 < var_2 . length ;
    var_10 ++ ) {
      if ( ( var_2 [ var_10 ] >> var_11 & 1 ) == 1 ) {
        var_14 ^= var_2 [ var_10 ] ;
      }
      else {
        var_15 ^= var_2 [ var_10 ] ;
      }
    }
    var_8 . add ( var_14 ) ;
    var_8 . add ( var_15 ) ;
    return var_8 ;
  }
  