按标题属性对对象的ArrayList进行排序

时间:2013-05-26 22:04:26

标签: java oop sorting arraylist

我有一个对象类,它包含属性标题,导演,流派,评级。我已经创建了一个arraylist并且已经填充了这个基类的实例

ArrayList<Movie> movieCatalog

我想通过title属性按字母顺序对此ArrayList进行排序,并更改它们在ArrayList中的位置。从我的研究中我了解到我需要使用Comparator类,但我对如何做到这一点很困惑。

2 个答案:

答案 0 :(得分:0)

您可以创建自定义比较器,而不是调用Collections.sort(movieCatalog,comparator);方法。

E.g。

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);

答案 1 :(得分:0)

您的Movie课程需要实施Comparable<Movie>。然后,您需要实现compareTo方法,在这种情况下,只能调用String类compareTo方法。

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

之后,如果movies是电影的ArrayList,您只需执行

即可
Collections.sort(movies);