最近工作中遇到一个问题,需要对结果中的昨日收益字段降序
由于调用的是C++写的接口,接口中昨日收益字段是算数得出的,sql去解决的办法就行不通了
想到了之前不怎么常用的比较器Comparator
记录一下吧
public class sort{
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> fcMap = new HashMap<String, Object>();
//结果集
fcMap = MyAssetsManager.getInstance().fundListNewJG(requestMap);
list = ((List) fcMap.get(KdfConstants.RET_DATA));
System.out.println("---------排序前----------");
for (Map<String, Object> map : list) {
System.out.println(map.get("id"));
}
Collections.sort(list, new Comparator<Map<String, Object>>(){
//实现一个比较器
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
// TODO Auto-generated method stub
Double d1 = Double.parseDouble((String) o1.get("yestdayprofit"));
Double d2 = Double.parseDouble((String) o2.get("yestdayprofit"));
return (d2).compareTo(d1);//降序
}
});
System.out.println("---------排序后 ----------");
for (Map<String, Object> map : list) {
System.out.println(map.get("id"));
}
}
}