我有一個對象類,其中包含屬性標題,導演,流派,評級。我已經創建了一個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