comefrom: <gouthampradhan>hashing_CustomSortString_1.java
code: public String customSortString(String S, String T) {
      Map<Character, Integer> map = new HashMap<>();
      for (int i = 0; i < T.length(); i++) {
        if (!map.containsKey(T.charAt(i))) {
          map.put(T.charAt(i), 1);
        } else {
          map.put(T.charAt(i), map.get(T.charAt(i)) + 1);
        }
      }
      StringBuilder result = new StringBuilder();
      for (char c : S.toCharArray()) {
        if (map.containsKey(c)) {
          int count = map.remove(c);
          for (int i = 0; i < count; i++) {
            result.append(c);
          }
        }
      }
      for (char c : map.keySet()) {
        int count = map.get(c);
        for (int i = 0; i < count; i++) {
          result.append(c);
        }
      }
      return result.toString();
    }
masked: public String var_0 ( String var_1 , String var_2 ) {
    Map < Character , Integer > var_3 = new HashMap < > ( ) ;
    for ( int var_4 = 0 ;
    var_4 < var_2 . length ( ) ;
    var_4 ++ ) {
      if ( ! var_3 . containsKey ( var_2 . charAt ( var_4 ) ) ) {
        var_3 . put ( var_2 . charAt ( var_4 ) , 1 ) ;
      }
      else {
        var_3 . put ( var_2 . charAt ( var_4 ) , var_3 . get ( var_2 . charAt ( var_4 ) ) + 1 ) ;
      }
    }
    StringBuilder var_5 = new StringBuilder ( ) ;
    for ( char var_6 : var_1 . toCharArray ( ) ) {
      if ( var_3 . containsKey ( var_6 ) ) {
        int var_7 = var_3 . remove ( var_6 ) ;
        for ( int var_4 = 0 ;
        var_4 < var_7 ;
        var_4 ++ ) {
          var_5 . append ( var_6 ) ;
        }
      }
    }
    for ( char var_6 : var_3 . keySet ( ) ) {
      int var_7 = var_3 . get ( var_6 ) ;
      for ( int var_4 = 0 ;
      var_4 < var_7 ;
      var_4 ++ ) {
        var_5 . append ( var_6 ) ;
      }
    }
    return var_5 . toString ( ) ;
  }
  