按照出现频率升序,频率相同,按数字大小降序

 

import java.util.Arrays;

public class Main {
public static void main(String[] args) {
int[] nums = {-1, -1, -1, 2, 2, 2, 3, 3, 3, 5, 6, 7, 8, 0, 0};
System.out.println(Arrays.toString(Arrays1(nums)));
}

public static int[] Arrays1(int[] nums) {
int[] count = new int[201];
for (int i : nums) {
count[i + 100]++;
}
return Arrays.stream(nums).boxed().sorted((a, b) -> {
int af = count[a + 100];
int bf = count[b + 100];
if (af < bf) {
return -1;
} else if (af > bf) {
return 1;
} else {
return b-a;
}

}).mapToInt(Integer::intValue).toArray();
}
}
posted @ 2024-02-09 22:19  赵千万  阅读(1)  评论(0编辑  收藏  举报