public static void sortAccording(int[] A1, int[] A2){
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        for(int n : A1){
            if(map.containsKey(n)){
                map.put(n, map.get(n) + 1);
            }else{
                map.put(n, 1);
            }
        }

        int index = 0;
        for(int n : A2){
            if(map.containsKey(n)){
                int count = map.get(n);
                for(int i = 0; i < count; i++){
                    A1[index++] = n;
                }
                map.remove(n);
            }
        }

        List<Integer> keys = new ArrayList<Integer>(map.keySet());
        Collections.sort(keys);
        for(int key : keys){
            int count = map.get(key);
            for(int i = 0; i < count; i++) A1[index++] = key;
        }
    }