1class Solution {2public int[] sortByBits(int[] arr) {34Integer[] arrInt = new Integer[arr.length];56for (int i = 0; i < arr.length; i++) {7arrInt[i] = arr[i];8}910Arrays.sort(11arrInt,12new Comparator<Integer>() {13@Override14public int compare(Integer a, Integer b) {15int aBits = numOfBits(a);16int bBits = numOfBits(b);17if (aBits == bBits) {18return a - b;19}20return aBits - bBits;21}22});2324for (int i = 0; i < arr.length; i++) {25arr[i] = arrInt[i];26}27return arr;28}2930public int numOfBits(int a) {31int bits = 0;32while (a != 0) {33bits += a & 1;34a = a >>> 1;35}3637return bits;38}39}