對一個集合中的對象進行排序,根據(jù)對象的某個指標(biāo)的大小進行升序或降序排序。代碼如下:
進行降序排列
1
2
3
4
5
6
|
進行降序排列 public int compare(ResultTypeDesc o1, ResultTypeDesc o2) { return o2.getRatio().compareTo(o1.getRatio()); } }); |
進行升序排列
1
2
3
4
5
|
Collections.sort(list, new Comparator<ResultTypeDesc>() { public int compare(ResultTypeDesc o1, ResultTypeDesc o2) { return o1.getRatio().compareTo(o2.getRatio()); } }); |
經(jīng)過測試發(fā)現(xiàn),只需要把兩個對象的位置調(diào)換一下即可升序或降序。
如果指標(biāo)相同,根據(jù)多個指標(biāo)進行排序,需創(chuàng)建一個比較器:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.*; public class ComparatorResultType implements Comparator{ public int compare(Object arg0, Object arg1) { ResultTypeDesc desc0=(ResultTypeDesc)arg0; ResultTypeDesc desc1=(ResultTypeDesc)arg1; //首先比較主指標(biāo),如果主指標(biāo)相同,則比較次指標(biāo) int flag=desc0.getXXX().compareTo(desc1.getXXX()); if (flag== 0 ){ return desc0.getXXX2().compareTo(desc1.getXXX2()); } else { return flag; } } } //測試類中代碼: ComparatorResultType comparator= new ComparatorResultType(); Collections.sort(list, comparator); |
對list集合進行逆輸出:
Collections.reverse(list);
ResultTypeDesc這個為所需的實體類對象,具體使用結(jié)合自己代碼情況即可。
此方法有可能報空指針,自己結(jié)合情況,自行解決,判斷是否為NULL。