最近写过一个界面,涉及到排序。
用到了 Collections 中的 sort 方法:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Collections.sort(mData, new Comparator<BookMemberReport>() {
public int compare(BookMemberReport lhs, BookMemberReport rhs) {
if (sortFlag == SORT_FLAG_SALE_DESCENDING) {
return (int) (rhs.saleAmount - lhs.saleAmount);
} else if (sortFlag == SORT_FLAG_SALE_ASCENDING) {
return (int) (lhs.saleAmount - rhs.saleAmount);
} else if (sortFlag == SORT_FLAG_COUNT_DESCENDING) {
return rhs.orderCount - lhs.orderCount;
} else if (sortFlag == SORT_FLAG_COUNT_ASCENDING) {
return lhs.orderCount - rhs.orderCount;
}
return 0;
}
});
Collections 根据传入的 Comparator 进行排序。刚开始写的时候通过不停的试,把正确的结果给试出来了。但是对于其原理却不是很清晰,今天便稍微扒一扒其源码。
more >>