1356. Sort Integers by The Number of 1 Bits
class Solution { public int[] sortByBits(int[] arr) { Integer[] arrObject = new Integer[arr.length]; for (int i = 0; i < arr.length; i++) { arrObject[i] = arr[i]; } Arrays.sort(arrObject, new Comparator() { @Override public int compare(Integer o1, Integer o2) { if (countOnes(o1) == countOnes(o2)) return o1.compareTo(o2); else if (countOnes(o1) > countOnes(o2)) return 1; else return -1; } }); for (int i = 0; i < arr.length; i++) { arr[i] = arrObject[i]; } return arr; } public static int countOnes(int n) { int count = 0; while (n != 0) { n = n & (n - 1); count++; } return count; } }