如何在没有SQL的情况下对“Book”ArrayList进行排序?

时间:2010-09-14 14:18:03

标签: java sorting arraylist

My Book应用程序使用针对不同Book个对象的查找收集Merchant个对象的集合:

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

它必须在下拉框的基础上对List进行排序:

<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属性,在按照请求的顺序向用户显示之前,如何对Java中的BooksList进行排序?

3 个答案:

答案 0 :(得分:4)

以与排序任何List相同的方式执行此操作。实施Comparator并致电Collections.sort(list, comparator)

有3种不同的排序方式意味着你可能需要创建3个实现,或者你可以控制的单个实现3种方式。

答案 1 :(得分:0)

几乎问了同样的问题yesterday

简短的回答,取决于您的解决方案需要多么灵活,您可以编写一个Comparator,或者编写几个并将它们组合在一起以满足复杂的排序要求。

答案 2 :(得分:0)

Ordering非常适合此类事情。 Ordering.compound()允许您以与您描述的方式完全链接选项。