我正在尝试使用 Comparator
接口(interface)对对象(“Etudiant”)的 TreeSet
进行排序。这是Comparator
实现:
import java.util.Comparator;
public class TriParNom implements Comparator<Etudiant>{
public int compare(Etudiant o1, Etudiant o2) {
return o1.getNom().compareTo(o2.getNom());
}
}
这里是 TreeSet 声明和 main 中比较器的调用:
TreeSet<Etudiant> University= new TreeSet<Etudiant>(new TriParNom());
当我声明 TreeSet 并调用比较器时,我在主类中遇到的错误是:没有找到适合 TreeSet(TriParNom) 的构造函数。
请问有什么解决办法吗?提前致谢。
最佳答案
我根据您提供的信息尝试了一个非常简单的实现,然后给您我的结果:
Etudiant 类是一个非常简单的 pojo
public class Etudiant {
private String nom;
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
} }
TriParNom 类是您描述的普通比较器:
import java.util.Comparator;
public class TriParNom implements Comparator<Etudiant> {
@Override
public int compare(Etudiant o1, Etudiant o2) {
return o1.getNom().compareTo(o2.getNom());
}
}
这是一个简单的类,带有入口点和示例方法来练习新创建的树集
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<Etudiant> u = new TreeSet<>(new TriParNom());
System.out.printf("size? %d%n", u.size());
}
}
执行结果如下:
显然,也没有编译错误。
关于java - 使用比较器对 Java TreeSet 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136315/