我使用几个分隔符将对象的ArrayList按降序或升序排序。 Currenlty,这些比较器是在不同的类别。我如何将以下比较器合并到一个类中?将分隔符合并为一个类
class ascendingSortComparator implements Comparator<Movie> { //sort movie ascending
@Override
public int compare(Movie movie1, Movie movie2) {
return movie1.getTitle().compareTo(movie2.getTitle());
}
}
class descendingSortComparator implements Comparator<Movie> { //sort movie ascending
@Override
public int compare(Movie movie1, Movie movie2) {
return -movie1.getTitle().compareTo(movie2.getTitle());
}
}
如果这是可能的,我将如何调用适当的比较器。目前我称之为:
public void sortData() {
String option = (String) sortComboBox.getSelectedItem();
if ("Ascending".equals(option)) {
Collections.sort(movieCatalog, new ascendingSortComparator());
//indexCount = (movieCatalog.size()-1) - indexCount;
//displayData(indexCount);
}
if ("Descending".equals(option)) {
Collections.sort(movieCatalog, new descendingSortComparator());
//indexCount = (movieCatalog.size()-1) - indexCount;
//displayData(indexCount);
}
}
严格地说:有三类:'MovieComparator'和两个匿名类。但我认为这是尽可能的接近。 –
它们都可以出现在一个Java文件中,而实现意味着多个.class文件,正如你所说的,我认为这是最接近OP想要的。 –