我收到此行的编译错误:
Collections.sort(terms, new QuerySorter_TFmaxIDF(myInteger));
我的定制比较器非常基本;这是签名和构造函数:
public class QuerySorter_TFmaxIDF implements Comparator<Term>{
private int numberOfDocs;
QuerySorter_TFmaxIDF(int n){
super();
numberOfDocs = n;
}
}
是否有错误,因为我将参数传递给比较器?我需要传递一个论点......
答案 0 :(得分:2)
没有理由不能将参数传递给该构造函数。您的代码丢失了:
超类。你的构造函数调用super()
所以我假设有一个;以及
compare()
界面所需的Comparator
方法。
numberOfDocs
到底意味着什么?
答案 1 :(得分:1)
您的Comparator需要比较字符串,因为您的ArrayList包含字符串。
public class QuerySorter_TFmaxIDF implements Comparator<Term> {
必须是
public class QuerySorter_TFmaxIDF implements Comparator<String> {
答案 2 :(得分:0)
问题在于您的比较器。它用于对Term-s进行排序,但是您通过Collections.sort()方法处理它的数组具有String类型的元素。