Как отсортировать «Книжный» ArrayList без SQL? - PullRequest
0 голосов
/ 14 сентября 2010

Приложение My Book собирает коллекцию Book объектов, используя поиск по различным Merchant объектам:

List<Book> books = new ArrayList<Book>();
for (Merchant merchant : merchants)
{
    books.addAll(getBooksForMerchant(merchantName);
}

Должен сортировать список на основе выпадающего списка:

<select class="sortByDropdown" name="sort">
<option value="lowPrice">Price: Low to High</option>
<option value="highPrice">Price: High to Low</option>
<option value="reviewRank">Avg. Customer Review</option>
</select>

Учитывая, что Book имеет свойство price и свойство reviewRank, как бы я отсортировал ArrayList of Books на Java, прежде чем отображать его пользователю в порядке, который они запрашивали?

Ответы [ 3 ]

4 голосов
/ 14 сентября 2010

Сделайте это так же, как вы бы отсортировали любой список.Реализация Comparator и вызов Collections.sort(list, comparator).

Наличие 3-х различных способов сортировки означает, что вам может потребоваться создать 3 реализации или одну, которой вы можете управлять, чтобы сортировать 3 способа.

0 голосов
/ 14 сентября 2010

Заказ отлично подходит для такого рода вещей.Ordering.compound () позволяет вам связать параметры в соответствии с тем, что вы описали.

0 голосов
/ 14 сентября 2010

Почти тот же вопрос был задан вчера :

Короткий ответ, в зависимости от того, насколько гибким должно быть ваше решение, вы можете написать один компаратор или написать несколько и составить их вместедля сложных требований сортировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...