我有一个包含属性标题、导演、流派、评级的对象类。我创建了一个数组列表并用这个基类的实例填充它
ArrayList<Movie> movieCatalog
我想按标题属性按字母顺序对这个 ArrayList 进行排序,并更改它们在 ArrayList 中的位置。根据我的研究,我知道我需要使用 Comparator 类,但我对如何做到这一点感到困惑。
您可以创建一个自定义比较器,然后调用该Collections.sort(movieCatalog,comparator);
方法。
例如
public static final Comparator<movieCatalog> movieComparator = new Comparator<movieCatalog>() {
public int compare(movieCatalog a1, movieCatalog a2) {
return a1.name.compareTo(a2.name);
}
};
Collections.sort(movieCatakig,movieComparator);
你的Movie
班级需要实现Comparable<Movie>
. 然后您需要实现该compareTo
方法,在这种情况下,它可以只调用 String 类compareTo
方法。
int compareTo(Movie other) {
return this.title.compareTo(other.title);
}
之后,如果movies
是电影的 ArrayList,你可以简单地做
Collections.sort(movies);