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进行排序?
答案 0 :(得分:4)
以与排序任何List相同的方式执行此操作。实施Comparator
并致电Collections.sort(list, comparator)
。
有3种不同的排序方式意味着你可能需要创建3个实现,或者你可以控制的单个实现3种方式。
答案 1 :(得分:0)
几乎问了同样的问题yesterday:
简短的回答,取决于您的解决方案需要多么灵活,您可以编写一个Comparator,或者编写几个并将它们组合在一起以满足复杂的排序要求。
答案 2 :(得分:0)
Ordering非常适合此类事情。 Ordering.compound()允许您以与您描述的方式完全链接选项。