我使用幾個分隔符將對象的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想要的。 –