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)