1

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

我很难过

4

1 回答 1

5

您的 Multiset 是Multiset<String>,所以您的比较器不应该比较Strings 吗?这看起来是编译器所期望的。

public static class OccurenceComparator implements Comparator<String>{
于 2013-01-11T02:52:00.220 回答