有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案