Java中基于字符频率而非ASCII值的重写比较器
我试图根据每个字符的另一个字符的数组频率对一个字符数组char[] input
进行排序char[] freq
一个非常简单的例子是:
input: bey
freq input: bbbyye
output: after sorted would be "bye"
我在我的freq输入上迭代,并输入一个键值对,如下面的问题:char c是key;int是值
现在;如何根据频率对输入进行排序?我实现Comparator的尝试失败了。我的代码现在与下面的accepted answer相同
我“想要”做的是糟糕的java或伪代码:
char[] input;
Arrays.sort(input, new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
return counts.get(o2) - counts.get(o1); //counts is a static
//global hashmap with the frequency values
}
});
我不认为这会起作用,也不会。错误在于类型数组中的方法排序(char[])不适用于参数(char[],new Comparator(){})
共 (0) 个答案