-1

我有一个包含属性标题、导演、流派、评级的对象类。我创建了一个数组列表并用这个基类的实例填充它

ArrayList<Movie> movieCatalog

我想按标题属性按字母顺序对这个 ArrayList 进行排序,并更改它们在 ArrayList 中的位置。根据我的研究,我知道我需要使用 Comparator 类,但我对如何做到这一点感到困惑。

4

2 回答 2

0

您可以创建一个自定义比较器,然后调用该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);
于 2013-05-26T22:06:20.027 回答
0

你的Movie班级需要实现Comparable<Movie>. 然后您需要实现该compareTo方法,在这种情况下,它可以只调用 String 类compareTo方法。

int compareTo(Movie other) {
    return this.title.compareTo(other.title);
}

之后,如果movies是电影的 ArrayList,你可以简单地做

Collections.sort(movies);
于 2013-05-26T22:08:02.593 回答