Java SIMPLE solution using TreeMap and with explanation faster than 100.00%
\nclass Solution {\n    public int[] frequencySort(int[] nums) {\n        int[] bucket = new int[201]; //An array bucket to store frequency of numbers ranged be
```\nclass Solution {\n    public int[] frequencySort(int[] nums) {\n        int[] bucket = new int[201]; //An array bucket to store frequency of numbers ranged between -100 to 100\n        for(int num : nums) {\n            bucket[num+100]++;\n        }\n        TreeMap<Integer, List<Integer>> map = new TreeMap(); //TreeMap to store numbers list by their frequency and in case of same frequency the list will be in descending order\n        for(int i=200; i>=0; i--) {\n            if(bucket[i] > 0) {\n                if(!map.containsKey(bucket[i]))\n                    map.put(bucket[i], new ArrayList<Integer>());\n                List<Integer> temp = map.get(bucket[i]);\n                temp.add(i-100);\n                map.put(bucket[i], temp);\n            }\n        }\n        int[] result = new int[nums.length];\n        int index = 0;\n        for(Map.Entry<Integer, List<Integer>> entry : map.entrySet()) {  //Finally generate the result array\n            int freq = entry.getKey();\n            for(int num : entry.getValue())\n                for(int i=0; i<freq; i++)\n                    result[index++] = num;\n        }\n        return result;\n    }\n}\n```
['Java']