如何在TreeMultiSet中使用自定义比较器?

时间:2013-01-11 02:46:18

标签: java guava comparator

我想为Comparator使用自定义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);
}

这是我得到的:

  

未解决的编译问题:         类型create(Comparator<? super E>)中的方法TreeMultiset不适用于参数   (Comparator<Multiset.Entry<String>>)

我很难过

1 个答案:

答案 0 :(得分:4)

你的Multiset是Multiset<String>,所以你的比较器不应该比较String?这看起来就像编译器所期望的那样。

public static class OccurenceComparator implements Comparator<String>{