2013-05-26 5 views
-1

У меня есть класс объектов, который содержит название свойства, режиссер, жанр, рейтинг. Я создал ArrayList и заполнил его с экземплярами этого базового классаСортировка ArrayList объекта по названию свойства

ArrayList<Movie> movieCatalog 

Я желающим разобраться в этом ArrayList в алфавитном порядке по названию собственности и изменить свои позиции в ArrayList. Из моих исследований я понимаю, что мне нужно использовать класс Comparator, но я не понимаю, как это сделать.

ответ

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

Но как бы я изменить положение объектов в ArrayList – batsta13

+0

При вызове 'Collection.sort' , и поместите movieCatalog, и movieComparator, сортировщик сортируется для вас. См.: Http://docs.oracle.com/javase/tutorial/collections/interfaces/order.html –

+0

Теперь я понимаю. Спасибо за вашу помощь, в отличие от некоторых других на этом форуме. – batsta13

0

Ваш Movie класс должен реализовать Comparable<Movie>. Затем вам необходимо реализовать метод compareTo, который в этом случае может вызвать метод String класса compareTo.

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

После этого, если movies является ArrayList фильмов, вы можете просто сделать

Collections.sort(movies); 
Смежные вопросы