Java集合排序不接受带有arg的comparator构造函数
我得到这一行的编译器错误:Java集合排序不接受带有arg的comparator构造函数,java,sorting,collections,comparator,Java,Sorting,Collections,Comparator,我得到这一行的编译器错误: Collections.sort(术语,新的QuerySorter_TFmaxIDF(myInteger)) 我定制的比较器非常基本;这是签名和构造函数: public class QuerySorter_TFmaxIDF implements Comparator<Term>{ private int numberOfDocs; QuerySorter_TFmaxIDF(int n){ super(); numberOfDocs =
Collections.sort(术语,新的QuerySorter_TFmaxIDF(myInteger))代码>
我定制的比较器非常基本;这是签名和构造函数:
public class QuerySorter_TFmaxIDF implements Comparator<Term>{
private int numberOfDocs;
QuerySorter_TFmaxIDF(int n){
super();
numberOfDocs = n;
}
公共类QuerySorter\u TFmaxIDF实现了Comparator{
私人int numberOfDocs;
QuerySorter_TFmaxIDF(内部n){
超级();
numberOfDocs=n;
}
}
是否有错误,因为我正在将参数传递到比较器?我需要传递一个参数…没有理由不能将参数传递给该构造函数。您的代码丢失:
超类。您的构造函数调用super()
,所以我假设有一个;及
比较器接口所需的compare()
方法
在这里,numberOfDocs
到底要做什么?您的比较器需要比较字符串,因为您的ArrayList包含字符串
public class QuerySorter_TFmaxIDF implements Comparator<Term> {
公共类QuerySorter\u TFmaxIDF实现了Comparator{
一定是
public class QuerySorter_TFmaxIDF implements Comparator<String> {
公共类QuerySorter\u TFmaxIDF实现了Comparator{
问题在于您的比较器。它用于对Term-s进行排序,但您通过集合处理的数组。sort()方法具有String类型的元素。构造函数参数应该无关紧要。您得到了什么错误以及变量terms
的定义是什么?“我得到了一个编译器错误”--错误是什么?你怎么能说这样的话而不说呢?请帮助我们帮助你。@cletus compare()已经实现,但是它太大了,无法在这个评论中发表。你是对的,我不需要super()调用,但没有那一行,我仍然会得到相同的错误。numberOfDocs用于compare()中@oedo计算的方法错误是:找不到符号方法排序(Java.util.ArrayList,projectPackage.QuerySorter\u TFmaxIDF)