举例:
List<IrFldsltpvM> irFldsltpvMList
里的数据为:
[{SLTP_CODE:s04, SLTPV_Z:10.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s05, SLTPV_Z:20.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s05, SLTPV_Z:40.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s01, SLTPV_Z:50.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s01, SLTPV_Z:60.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s01, SLTPV_Z:70.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s01, SLTPV_Z:80.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s01, SLTPV_Z:100.0, FLD_SLTP_ID:8863144676635},
{SLTP_CODE:s01, SLTPV_Z:110.0, FLD_SLTP_ID:8863144676635}]
需求用 SLTPV_Z 进行排序, 如下代码:
// 排序胜率
// 为了适应JDK1.7
Collections.sort(irFldsltpvMList, new Comparator<IrFldsltpvM>(){
//重点是这个函数
@Override
public int compare(IrFldsltpvM o1, IrFldsltpvM o2) {
//忽略掉大小写后,进行字符串的比较
Double s1 = Double.valueOf((String) o1.get("SLTPV_Z"));
Double s2 = Double.valueOf((String) o2.get("SLTPV_Z"));
//数字在ADCII中也是按照 排序的
// return s1.compareTo(s2);JDK1.8可用
// return s2.compareTo(s1);
//为了适应JDK1.7
return s1.doubleValue() == s2.doubleValue() ? 0 : (s1.doubleValue() > s2.doubleValue() ? 1 : -1);
}
});
最后集合排序成10,20,30,….