Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在树集合中使用自定义比较器?_Java_Guava_Comparator - Fatal编程技术网

Java 如何在树集合中使用自定义比较器?

Java 如何在树集合中使用自定义比较器?,java,guava,comparator,Java,Guava,Comparator,我想对TreeMultiSet使用自定义比较器。我是这样做的: public static class OccurenceComparator implements Comparator<Multiset.Entry<String>>{ @Override public int compare(Multiset.Entry<String> e1, Multiset.Entry<String> e2) { return

我想对
TreeMultiSet
使用自定义
比较器。我是这样做的:

public static class OccurenceComparator implements Comparator<Multiset.Entry<String>>{
    @Override
    public int compare(Multiset.Entry<String> e1, Multiset.Entry<String> e2) {
        return e2.getCount() - e1.getCount() ;
    }
}

public static void main(String args[]) throws Exception{
    Comparator<Multiset.Entry<String>> occurenceComparator = new OccurenceComparator();
    Multiset<String> treeMultiSet = TreeMultiset.create(occurenceComparator);
}
公共静态类OccurenceComparator实现Comparator{
@凌驾
公共整数比较(多集项e1、多集项e2){
返回e2.getCount()-e1.getCount();
}
}
公共静态void main(字符串args[])引发异常{
Comparator OccurrenceComparator=新的OccurrenceComparator();
Multiset treeMultiSet=treeMultiSet.create(OccurrenceComparator);
}
以下是我得到的:

未解决的编译问题:
方法
create(Comparator您的多集是
Multiset
,因此您的比较器不应该比较
字符串吗?这看起来是编译器所期望的

public static class OccurenceComparator implements Comparator<String>{
公共静态类OccurenceComparator实现Comparator{

您的多集是
Multiset
,因此您的比较器不应该比较
字符串吗?这似乎是编译器所期望的

public static class OccurenceComparator implements Comparator<String>{
公共静态类OccurenceComparator实现Comparator{

comparator比较键而不是条目。在您的实例中应为comparator类型,但我想根据它们在多集中出现的次数进行比较。comparator比较键而不是条目。在您的实例中应为comparator类型,但我想根据它们在多集中出现的次数进行比较但是我没有字符串,我该怎么办?…你不应该使用一个按元素排序的
TreeMultiset
。你应该使用类似的东西。我应该使用什么?我以为那是番石榴的排序多集。嗯,好吧,我会寻找那个方法。看来我没有足够好的番石榴版本。记住这个函数可能也用于插入s排序。但我没有字符串。getCount(),我该怎么办?…你不应该使用一个按元素排序的
TreeMultiset
。你应该使用类似的东西。我应该使用什么?我以为那是番石榴的排序多集。嗯,好吧,我会寻找那个方法。看来我没有足够好的番石榴版本。记住这个函数可能也用于插入s型。