我有一个对象类,其中包含属性标题,导演,流派,评级。我已经创建了一个ArrayList和与这个基类按标题属性排序对象的ArrayList
ArrayList<Movie> movieCatalog
我想以按字母顺序此ArrayList由title属性,并在ArrayList中改变它们的位置的情况下填补它。从我的研究中我明白我需要使用Comparator类,但我对如何做到这一点感到困惑。
我有一个对象类,其中包含属性标题,导演,流派,评级。我已经创建了一个ArrayList和与这个基类按标题属性排序对象的ArrayList
ArrayList<Movie> movieCatalog
我想以按字母顺序此ArrayList由title属性,并在ArrayList中改变它们的位置的情况下填补它。从我的研究中我明白我需要使用Comparator类,但我对如何做到这一点感到困惑。
您可以创建自定义比较器,并调用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);
你Movie
类需要实现Comparable<Movie>
。然后你需要实现compareTo
方法,在这种情况下,可以只调用String类compareTo
方法。
int compareTo(Movie other) {
return this.title.compareTo(other.title);
}
之后,如果movies
是电影的一个ArrayList,你可以简单地做
Collections.sort(movies);
但我将如何改变ArrayList的 – batsta13
内的物体的位置当你调用'Collection.sort' ,并把movieCatalog,和movieComparator,arraylist为您排序。请参阅:http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html –
我现在明白了。感谢您的帮助,不像这个论坛上的其他人 – batsta13